Понимание символов в двоичном файле - PullRequest
0 голосов
/ 01 июня 2018

Я читаю двоичный файл, написанный на 16 битах (с прямым порядком байтов и со знаком).Я успешно прочитал файл и получил хорошие значения от преобразования байтов в целые числа.Но есть некоторые символы, которые я не понимаю, поэтому я надеюсь, что кто-то сможет мне это объяснить:)

  • b '\ xff \ xff' дает мне -1, что хорошо, и я понимаю, что\ x обозначает экранирование шестнадцатеричного символа.
  • b '\ x00 \ x00' дает 0, логика.
  • b'v \ x1d 'дает 7542, что является хорошим значением (я знаю этопотому что я знаю ценность, которую я должен получить, и именно она), но я не понимаю значения «v».Каково его значение?Я нашел в Интернете ASCII - таблицу двоичных символов, в которой «v» - 01110110. Если мы рассмотрим это значение для «v» и «1d» как 00011101 », то у нас будет 01110110 00011101, который не 7542, а 30237, поэтомуздесь 'v' неверно ...
  • b'K \ x1d 'дает 7499. То же самое здесь, значение хорошее, но я не понимаю' K '.

Так что, если кто-нибудь сможет объяснить мне, что означает «v» и «K», это было бы здорово!

Спасибо.

1 Ответ

0 голосов
/ 01 июня 2018

Ваше предположение относительно K и v наполовину верно: так как little endian , ваше значение будет иметь младший байт первым:

  • "v" равно 76 inгекс, поэтому v\x1d = 1D76 в гексе = 7542
  • "K" равно 4B в гексе, поэтому K\x1d = 1D4B в гексе = 7499
...