给定一个obj-c无符号字节数组,如何在Java中获得等效的字节值?

时间:2016-12-03 14:27:32

标签: java android objective-c

我在iOS应用程序中有一个字节数组,

counter++

我需要从运行Java的Android设备发送这些相同的确切值。

有没有办法可以将无符号值可靠地转换为Java可以使用和发送的东西,这相当于iOS上的字节值?

1 个答案:

答案 0 :(得分:1)

在Objective-c中,从数据...

创建一个十六进制字符串
const uint8_t bytes[] = {189U, 139U, 64U, 0U};
NSMutableString *result  = [NSMutableString string];

for (int i = 0; i < 4; ++i) {
    [result appendFormat:@"%02x", (uint8_t)bytes[i]];
}
NSLog(@"%@",result);

这将导致....

  

bd8b4000

然后在java中apply an idea like this(这里逐字复制代码)......

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;
}