gpt4 book ai didi

android - 将十六进制字符串转换为字节 []

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:54 24 4
gpt4 key购买 nike

我有这样一个字符串:

init_thread = "2b11020000ed"

我必须通过蓝牙发送这个字符串,因为我这样做:

byte[] init = init_thread.getBytes();
GlobalVar.mTransmission.write(init);

我需要在将 init_thread 字符串转换为字节之前定义它是一个十六进制字符串,因为如果我这样做,就会出错:

现在在做什么 = 2(1byte), b(1byte), 1(1byte), 1(1byte)...

必须做什么 = 2b(1byte), 11(1byte), 02(1byte)...

最佳答案

十六进制转字节,字节转十六进制。

public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len/2];

for(int i = 0; i < len; i+=2){
data[i/2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i+1), 16));
}

return data;
}

final protected static char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
public static String byteArrayToHexString(byte[] bytes) {
char[] hexChars = new char[bytes.length*2];
int v;

for(int j=0; j < bytes.length; j++) {
v = bytes[j] & 0xFF;
hexChars[j*2] = hexArray[v>>>4];
hexChars[j*2 + 1] = hexArray[v & 0x0F];
}

return new String(hexChars);
}

关于android - 将十六进制字符串转换为字节 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18714616/

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