БИНАРНЫЙ БАЙТ К 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 является символом новой строки.