gpt4 book ai didi

Java 字符串中的字节表示

转载 作者:行者123 更新时间:2023-12-02 00:33:49 28 4
gpt4 key购买 nike

我正在从硬件设备接收数据。我将其作为字节数组接收。我想构建并存储一个可以显示字节数组数据的字符串。这就是我所拥有的:

byte[] buffer = new byte[BUFFER_SIZE];
bytes = mmInStream.read(buffer);
String[] str = new String[bytes];
StringBuffer readMessage = new StringBuffer();

for(int i=0; i<bytes; ++i){
str[i] = Integer.toHexString(buffer[i]);
while (str[i].length() < 8){ //standarize size
str[i] = '0' + str[i];
}
readMessage.append(str[i]);
}

我遇到的主要问题是,当我将字节转换为字符串时,我收到了意外的字节。我正在接收纯字节,因此我期望值的范围从 0x00 到 0xFF。但是,某些字节会转换为 0xFFFFFF09 等字节。为什么会出现这种情况?

最佳答案

您应该这样将 byte 转换为 int:

int byteAsInt = ((int)buffer[i]) & 0x000000FF;
str[i] = Integer.toHexString(byteAsInt);

关于Java 字符串中的字节表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com