我正在阅读一些代码,这些代码对int执行按位运算并将它们存储在数组中。我已经计算出每个步骤的二进制表示,并将其包含在代码旁边。
在另一台计算机上,数组buff作为消息接收并以十六进制显示为[42,56,da,1,0,0]
为什么问题是,你怎么能从十六进制数中找出原始数字是什么。我知道42
和56
是等效于'B'
和'V'
的ASCII。但是,您如何从423
da
'1'
'0'
获取号码'0'
?
由于
答案 0 :(得分:5)
DA 01 00 00
是0x000001DA
或0x1DA
的小端表示。反过来,这是256 + 13 * 16 + 10 = 474.也许您有这个号码并且稍后更改了程序并忘了重新编译?
从另一边看,423是0x1a7 ......
答案 1 :(得分:3)
正如glgl所说它应该是a7,你可以看到它来自哪里
buff[2] = reading&0xff; // 10100111 = 0xa7
buff[3] = (reading>>8)&0xff; //00000001 = 1
buff[4] = (reading>>16)&0xff; //00000000 = 0
buff[5] = (reading>>24)&0xff; ////00000000 = 0