gpt4 book ai didi

java - Java中7F以上的16进制转成String

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:59 34 4
gpt4 key购买 nike

我需要在我的字符串中附加一些十六进制字符。我正在尝试这个:

content += Character.toString((char) Integer.parseInt(Integer.toHexString(originalSize).toString(), 16));

它可以正常工作,但是当 originalSize 超过 127(十六进制为 7F)时,它会返回两个十六进制值。

例如,这样做:

content += Character.toString((char) Integer.parseInt(Integer.toHexString(176).toString(), 16));

结果是:(content hex numbers) C0 B0

B0 的十六进制是176,但我不知道如何去掉C0。有什么建议吗?谢谢!

编辑:

我想通过低功耗蓝牙向设备发送一个字符串。我有一个这样的字符串:

“ABCABC”。十六进制为 41 42 43 41 42 43

现在,我想添加这个字符串的格式(因为设备正在等待它),所以我在最后添加:41 42 43 41 42 43 7E 06 02,其中:

  • 7E: 格式开始
  • 06: 字符数
  • 02:制造商指定的特定格式。

我有主字符串,我正在手动添加这三个十六进制字符。

解决方案:

根据 Devon_C_Miller 的回答,我找到了自己的解决方案:

contentFormated = new byte[originalSize+3];

for(int i=0;i<originalSize;i++){
contentFormated[i] = content.getBytes()[i];
}

contentFormated[originalSize] = 0x7E;
contentFormated[originalSize+1] = (byte) 0xB0;
contentFormated[originalSize+2] = 0x02;

最佳答案

听起来你想要一个字节数组而不是一个字符串:

byte[] content = {0x42, 0x43, 0x41, 0x42, 0x43, 0x7E, 0x06, 0x02};

关于java - Java中7F以上的16进制转成String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258576/

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