我下载了 Hex Workshop,并被告知要读取一个 .dbc 文件。
如果您读取偏移量 0x04 和 0x05,它应该包含 28,315
我不确定如何做到这一点?0x04 意味着什么?
我下载了 Hex Workshop,并被告知要读取一个 .dbc 文件。
如果您读取偏移量 0x04 和 0x05,它应该包含 28,315
我不确定如何做到这一点?0x04 意味着什么?
0x04代表16进制中的4(0x只是表示数字的16进制表示中的一个公共前缀约定——因为许多人习惯于十进制),这将是第四个字节(由于他们在说偏移量,他们可能将第一个字节计为第0个字节,因此偏移量0x04将是第5个字节)。
我猜他们在说的是第4个和第5个字节在一起将是28315,但他们有没有说这是小端还是大端?
28315(十进制)在十六进制符号中是0x6E9B,在文件中的顺序可能是0x9B 0x6E,如果是小端则如此。
注意:小端和大端是指字节的写入顺序。人们通常以大端方式写十进制符号和十六进制符号,因此:
256将被写为0x0100(左边的数字是最大的刻度)
但这需要两个字节,小端系统将先写低字节:0x00 0x01。大端系统将先写高位字节:0x01 0x00。
通常英特尔系统是小端的,其他系统各不相同。
把二进制文件看作一个线性数组,其中的每个元素都是字节。
在这个数组中,0x04将是第5个(基于0的数组),而0x05将是第6个。
0x04和0x05中的两个值可以通过逻辑或操作符合并成数字28,315。
由于你正在读取的值是16位的,所以你需要将一个值进行位移,然后再进行逻辑或操作。例如,如果你正在使用c#来处理该文件,你可以使用以下代码:
int value = (ByteArray[4] >> 8) | ByteArray[5]);
您正在查看的是第4和第5个XX代码...
1 2 3 4 5 6 01 AB 11 7B FF 5A
所以,0x04和0x05是"7B"和"FF"。
假设您所说的,在您的情况下,7BFF应该等于您所需的值。
希望对您有所帮助。
十六进制中的0x04等于十进制中的4。十六进制中的0x10等于十进制中的16。calc.exe
可以帮助你在十六进制和十进制之间进行转换。
偏移量为4代表从文件开头开始计算4个字节。偏移量为0代表文件中的第一个字节。
看一下第4和第5个字节,它们应该具有值0x6E 0x9B(或0x9B 0x6E),这取决于你的字节序。