Может кто-нибудь объяснить мне смещения hex?
Я загрузил Hex Workshop ,и мне сказали прочитать.dbc файл.
Он должен содержать 28,315 если Вы читаете смещение 0х04 и 0x05
Я не уверен, как это сделать? Что означает 0x04?
6 ответов
0x04 является шестнадцатеричным для 4 (0x - это просто общее префиксное Соглашение для базового представления чисел 16-так как многие люди думают в десятичном формате), и это будет четвертый байт (поскольку они говорят offset, они, вероятно, считают первый байт как байт 0, поэтому offset 0x04 будет 5-м байтом).
Я думаю, они говорят, что 4-й и 5-й байты вместе будут 28315, но они сказали, если это маленький или большой конец?
28315 (десятичный) - 0x6E9B в шестнадцатеричная нотация, вероятно, в файле в порядке 0x9B 0x6E, если это мало-endian.
Примечание: Little-endian и big-endian ссылаются на байты заказа написаны. Люди обычно пишут десятичную нотацию и шестнадцатеричную по-крупному, так что:
256 будет записано как 0x0100 (цифры слева-самый большой масштаб)
но это занимает два байта и мало-endian системах сначала младший байт: 0х00 0х01. Big-endian systems напишет высокая байт: 0х00 0х01.
обычно системы Intel мало-endian и других систем различаются.
это 4-й и 5-й XX код вашего просмотра...
1 2 3 4 5 6 01 AB 11 7B FF 5A
Итак, 0x04 и 0x05 - это "7B"и " FF".
предполагая, что вы говорите, в вашем случае 7BFF должно быть равно вашему желаемому значению.
HTH
подумайте о двоичном файле как о линейном массиве байтов.
0x04 будет 5-м (в массиве на основе 0) элементом в массиве, а 0x05 будет 6-м.
два значения в 0x04 и 0x05 могут быть объединены вместе, чтобы создать число 28,315.
Так как значение, которое Вы читаете, составляет 16 бит, вам нужно bitshift одно значение, а затем или их вместе, т. е. если бы вы манипулировали файлом в C#, вы бы использовали что-то вроде это:
int value = (ByteArray[4] >> 8) | ByteArray[5]);
надеюсь, это поможет объяснить, как работают шестнадцатеричные адреса.
0х04 в Хекс-4 в десятичной. 0x10 в hex это 16 в десятичной. calc.exe
может конвертировать между шестнадцатеричным и десятичным для вас.
Offset 4 означает 4 байта от начала файла. Смещение 0 является первым байтом в файле.
посмотрите на байты 4 и пять, они должны иметь значения 0x6E 0x9B (или 0x9B 0x6E) в зависимости от вашей endianess.
старт здесь. Как только вы научитесь читать шестнадцатеричные значения, вы будете в гораздо лучшей форме, чтобы действительно решить свою проблему.