БИНАРНЫЙ БАЙТ К ASCII?

У меня есть файл, состоящий из ascii и двоичных данных. С помощью VIM я вижу, что в двоичном формате, это выглядит как

0000000: 00100100 01010101 00101100 00100000 01001110 00110100  $U, N4
0000006: 00110110 00110100 00110101 01001011 00101010 00110101  645K*5
000000c: 01000110 00001101 00001010 00100100 01000001 00101100  F..$A,

Здесь я обнаружил, что ASCII также показывает двоичные значения, но эти двоичные данные отображаются как "." В приведенном выше примере "f..$a" . Что это за точки? Я также пытался преобразовать двоичный код в ASCII онлайн для этих ".(Точка)" байтов 0001101 и 0001101, но они ничего не показывают. Что они должны представлять?

2 ответа

Эти два двоичных значения 00001101 00001010 показаны как .. в дампе ASCII справа. Если вы переведете их в шестнадцатеричное, вы увидите, что это 0x0d 0x0a, также известные как возврат каретки (CR) и перевод строки (LF), как вам скажет любая таблица ASCII. Текстовый файл, который вы просматриваете, имеет конец строки в стиле Windows!

Это пробельные символы, и если они включены буквально, это приведет к путанице в таблице ASCII. Вот почему они (а также непечатаемые управляющие символы ниже 32 и любые двоичные значения выше 127, которые не определены в ASCII и для которых требуется правильный набор символов, должны быть представлены как .

В общем, двоичная / шестнадцатеричная информация в дампе является авторитетной, а представление в ASCII справа - только для понимания человека.

Точки представляют собой символы, которые являются пробельными символами или символами, которые не имеют эквивалентной кодировки в используемой вами утилите. 0001101 - это 13 в десятичном виде, что в ASCII является символом новой строки.

Другие вопросы по тегам