在Swift的字节数组中存储十六进制整数(保留十六进制格式)

时间:2015-03-11 06:17:14

标签: ios swift hex

我必须将一个十六进制整数的字节数组发送到BLE设备。每当我尝试使用 0x 表示法时,存储在字节数组中的内部值将转换为十进制值。

var foo : [Byte] = [0xff, 0xD9]实际上存储为[255, 217]

我应该使用什么数据结构使其保持十六进制格式?

1 个答案:

答案 0 :(得分:1)

您将字节保留在字节数组中,它们的含义取决于您的解释。那么你要保留的是base10中的值为255和217的字节以及base16中的0xFF和0xD9。实际上它们在base2中保持为1111 1111和1101 1001。 (Computer number format

您可以安全地发送字节数组而无需任何更改。

如果你想用十六进制打印你的字节,你可以使用这样的东西:

println (foo.map { String($0, radix: 16, uppercase: false) })