Arrays 无符号字节数组到十六进制
我不熟悉字节,我必须根据有效负载上的一些值过滤掉一些可编辑的消息(bytearray)Arrays 无符号字节数组到十六进制,arrays,type-conversion,hex,bluetooth-lowenergy,byte,Arrays,Type Conversion,Hex,Bluetooth Lowenergy,Byte,我不熟悉字节,我必须根据有效负载上的一些值过滤掉一些可编辑的消息(bytearray) 根据我正在使用的设备的文档,有效负载第3和第4个值对应于公司ID。我得到的值是[-38,3],文档中说明该值应为0x03DA。这些值是否完全兼容?我应该如何翻译以确保它是正确的?你没有说你用什么语言做这件事,但有一些关于蓝牙数据的一般观点 发件人: 如果十六进制值为0x03DA,十进制值为986,且适用于EnOcean GmbH。 蓝牙以little-endian格式传输字节,因此字节将是[0xDA,0x0
根据我正在使用的设备的文档,有效负载第3和第4个值对应于公司ID。我得到的值是
[-38,3]
,文档中说明该值应为0x03DA
。这些值是否完全兼容?我应该如何翻译以确保它是正确的?你没有说你用什么语言做这件事,但有一些关于蓝牙数据的一般观点
发件人:
如果十六进制值为0x03DA,十进制值为986,且适用于EnOcean GmbH。
蓝牙以little-endian格式传输字节,因此字节将是[0xDA,0x03]
或[218,3]
。看到-38
的原因是字节被视为有符号整数(有时称为短整数),而不是无符号整数(无符号短整数)
在Python中,这看起来像:
>>int.from_字节(b'\xDA\x03',byteorder='little',signed=False)
986
>>>十六进制(int.from_字节(b'\xDA\x03',byteorder='little',signed=False))
“0x3da”
非常感谢您的回答。对不起,我没提。我正在使用Kotlin/Java。有了这些,我就有足够的时间继续了。干杯