2016-02-13 2 views
1

Я немного смущен, в чем разница между 0x0002 и 0x02. Я пытаюсь понять FAT boot sector, и я застрял, поскольку не понимаю, почему эти два значения интерпретируются по-разному. Когда я вставляю оба значения в шестнадцатеричном или десятичном конвертере, он возвращает 2 в обоих случаях, правильно.Шестнадцатеричное преобразование в блоке параметров BIOS FAT32

Почему эти значения интерпретируются по-разному операционной системой и каково влияние начальных нулей на шестнадцатеричные числа.

BIOS Parameter Block and Extended BIOS Parameter Block Fields

ответ

1

Я только обнаружил, что значения в FAT хранятся в маленьких обратном порядке байт, таким образом, является 0x0002 возвращаются к 0x0200, который находится в базе 10. 02512 всего 2 в базе 10.

+0

На самом деле 0x0200 составляет 512 в базе 16 (каждая база составляет 10 в своей собственной базе, несмотря на это). Шестнадцатеричное представление в статье является вводящим в заблуждение и неверным. Все номера (включая шестнадцатеричные) представлены в формате «большой конец». Чтобы представить формат «маленький конец» на диске, значение WORD будет 0x00, 0x02. –

Смежные вопросы