我下载六角车间,有人告诉我,读.dbc文件。
它应该包含28315如果你读偏移值0x04和0x05中
我不确定如何做到这一点? 这是什么意思0×04?
我下载六角车间,有人告诉我,读.dbc文件。
它应该包含28315如果你读偏移值0x04和0x05中
我不确定如何做到这一点? 这是什么意思0×04?
0×04是4个十六进制(该0X仅仅是数字的基数为16表示一个共同的前缀约定 - 因为很多人认为十进制),这将是第四个字节(因为他们所说的偏移,他们大概算的第一个字节为字节0,所以偏移值0x04将是5字节)。
我猜他们说,第4和第5个字节在一起会是28315,但没有他们说,如果这是小端还是大端?
28315(十进制)是0x6E9B十六进制表示,可能在为了0x9B 0x6E文件,如果是小端。
注:小端和大端是指字节的排列顺序。 人类典型的写十进制表示和十六进制在大端方式,所以:
256将被写为0100(左边的数字是规模最大)
但是,这需要两个字节和little-endian系统将写入低字节:0×00 0×01。 大端系统会先写高字节:0×01×00。
通常,英特尔系统是小端和其他系统不同而不同。
这是第4和第5 XX代码您的观看...
1 2 3 4 5 6 01 AB 11 7B FF 5A
因此,为0x04 0x05中是 “7B” 和 “FF”。
假设你在说什么,你的情况7BFF应等于所需的值。
HTH
认为一个二进制文件作为字节的线性阵列的。
0×04将是第五(在0基于数组)的数组中的元素,和为0x05将是第六。
在0×04 0×05和这两个值可以被进行或运算在一起以产生数28315。
既然你正在阅读的值是16位的,你需要通过再一个位位移值OR在一起,也就是说,如果你在操纵在C#中的文件,你会使用这样的:
int value = (ByteArray[4] >> 8) | ByteArray[5]);
希望这有助于解释十六进制地址是如何工作的。
0×04在十六进制是十进制4。 0x10的十六进制是十进制16。 calc.exe
可以十六进制和十进制之间的转换你。
从文件开始的偏移量4种手段4个字节。 偏移0是文件中的第一个字节。
看看字节4,五他们应该根据您的字节序值0x6E 0x9B(或0x9B 0x6E)。
开始在这里 。 一旦你学会如何阅读十六进制值,你会在更好的状态来实际解决您的问题。