Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ Общая ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


HEX и кодировки



HEX и кодировки


Недавно мы разбирали системы исчисления:
http://snakeproject.ru/rubric/article.php?art=hex_3082021

Продолжаем смежную серию статей, напомню:
Hex (hexadecimal) — обозначение шестнадцатеричной системы счисления
Hex-редактор — по для редактирования данных, представляющее данные как последовательность байтов в hex-коде


Редактор HEX в Linux

Будем использовать xxd

Запишем тестовые строки в файл:
# echo "My first string!" > /tmp/test.txt

Редактор xdd выводит по умолчанию данные из файлов в шестнадцатеричном формате:
# xxd /tmp/test.txt
00000000: 4d79 2066 6972 7374 2073 7472 696e 6721  My first string!
00000010: 0a   

Выше мы видим:
1я колонка - шестнадцатеричное представление номеров строк
2я колонка - шестнадцатеричное представление байтов данных
3я колонка - текстовое отображение данных

Спавка хелп:
# xxd -h

Выведем (-с 1 - вывести каждый байт отдельно):
# xxd -c 1 /tmp/test.txt
00000000: 4d  M
00000001: 79  y
00000002: 20
00000003: 66  f
00000004: 69  i
00000005: 72  r
00000006: 73  s
00000007: 74  t
00000008: 20
00000009: 73  s
0000000a: 74  t
0000000b: 72  r
0000000c: 69  i
0000000d: 6e  n
0000000e: 67  g
0000000f: 21  !
00000010: 0a  .

Выведем (-b - замена шестнадцатеричного представления на двоичное во второй колонке):
# xxd -c 1 -b /tmp/test.txt
00000000: 01001101  M
00000001: 01111001  y
00000002: 00100000
00000003: 01100110  f
00000004: 01101001  i
00000005: 01110010  r
00000006: 01110011  s
00000007: 01110100  t
00000008: 00100000
00000009: 01110011  s
0000000a: 01110100  t
0000000b: 01110010  r
0000000c: 01101001  i
0000000d: 01101110  n
0000000e: 01100111  g
0000000f: 00100001  !
00000010: 00001010  .


Кодировки стандарта ASCII (англ. American standard code for information interchange)

Однобайтовая, одному байту соответствует один символ

Содержит основные символы (английский алфавит, цифры, знаки препинания, и т.д.)

Длина кода каждого символа n=8 бит

Сравните вывод команд
Сопоставьте 2 и 3 колонки из шестнадцатеричного вывода xxd к таблице ASCII

Пример(пользуйтесь левым и верхним столбцами для вычисления): 4d это M

Остальные символы всех алфавитов и языков хранятся в других кодировках (пример UTF-8)

 

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект