是否可以将string转换为字节数组,然后将其转换回Java或Android中的原始string? 我的目标是发送一些string到微控制器(Arduino),并将其存储到EEPROM(只有1 KB)。 我试图使用MD5哈希,但它似乎只是一种单向encryption。 我能做些什么来处理这个问题?
我正在寻找转换Java字符数组到一个字节数组而不创build一个中间String ,因为字符数组包含一个密码。 我查了一些方法,但他们似乎都失败了: char[] password = "password".toCharArray(); byte[] passwordBytes1 = new byte[password.length*2]; ByteBuffer.wrap(passwordBytes1).asCharBuffer().put(password); byte[] passwordBytes2 = new byte[password.length*2]; for(int i=0; i<password.length; i++) { passwordBytes2[2*i] = (byte) ((password[i]&0xFF00)>>8); passwordBytes2[2*i+1] = (byte) (password[i]&0x00FF); } String passwordAsString = new String(password); String passwordBytes1AsString = new String(passwordBytes1); String passwordBytes2AsString = new String(passwordBytes2); System.out.println(passwordAsString); System.out.println(passwordBytes1AsString); System.out.println(passwordBytes2AsString); assertTrue(passwordAsString.equals(passwordBytes1) || passwordAsString.equals(passwordBytes2)); 断言总是失败(而且,批判地说,当代码在生产中被使用时,密码被拒绝),然而打印语句打印出三次密码。 为什么passwordBytes1AsString和passwordBytes2AsString不同于passwordAsString […]
我想从字节值build立一个string。 我目前使用: str = " " str[0] = byte 这似乎工作正常,但我觉得它很丑,并不是可扩展的string超过1个字符。 任何想法?
我试图从一个url使用bytestream获取图像。 但是我得到这个错误消息: 此stream不支持查找操作。 这是我的代码: byte[] b; HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url); WebResponse myResp = myReq.GetResponse(); Stream stream = myResp.GetResponseStream(); int i; using (BinaryReader br = new BinaryReader(stream)) { i = (int)(stream.Length); b = br.ReadBytes(i); // (500000); } myResp.Close(); return b; 我做错了什么人?
字节数组和字节缓冲区有什么区别? 另外,在什么情况下应该比另一个更受欢迎? [我的用例是用于在Java中开发的Web应用程序]。
到现在为止,我相信1024字节等于1 KB(千字节),但我正在网上阅读关于十进制和二进制系统。 所以,实际上1024字节= 1 KB将是定义的正确方法,或者只是一般的混淆? 对不起,如果我的问题太傻了。 提前致谢。
我只是困惑…一个人有多less个字符?
我怎样才能将short (2字节)转换为Java中的字节数组,例如 short x = 233; byte[] ret = new byte[2]; … 它应该是这样的。 但不确定。 ((0xFF << 8) & x) >> 0; 编辑: 你也可以使用: java.nio.ByteOrder.nativeOrder(); 发现是否本地位的大小。 另外,下面的代码是从java.io.Bits中得到的: 字节(数组/偏移量)为布尔值 字节数组到char 字节数组简写 字节数组为int 字节数组浮动 字节数组 字节数组加倍 而且反之亦然。
假设你正在使用一个支持C99的编译器(甚至只是stdint.h),有什么理由不使用固定宽度的整数types,如uint8_t? 我知道的一个原因是,在处理字符而不是使用(u)int8_t s时,使用char s更有意义,正如这个问题所提到的。 但是,如果你打算存储一个数字,你想什么时候使用一个你不知道它有多大的types呢? 也就是说,在什么情况下,你要存储一个数字在一个unsigned short而不知道是8,16甚至32位,而不是使用uint16t ? 接下来的是,使用固定宽度的整数或使用正常的整数types是不是更好的做法,只要不需要知道它们使用了多less个字节,就不要假设任何东西和sizeof 。
我想使用SHA1Managed使用SHA1algorithm散列给定的byte[]数组。 byte[]散列将来自unit testing。 预期的散列是0d71ee4472658cd5874c5578410a9d8611fc9aef (区分大小写)。 我怎样才能做到这一点? public string Hash(byte [] temp) { using (SHA1Managed sha1 = new SHA1Managed()) { } }