Menu
Coddy logo textTech

Почему шестнадцатеричная система?

Часть раздела Основы путешествия по Assembly на Coddy — урок 10 из 45.

Теперь вы знаете, что компьютеры используют двоичную систему счисления. Так почему же программисты на ассемблере редко пишут двоичный код напрямую?

Проблема с двоичной системой:

Двоичные числа очень длинные. Посмотрите на этот пример:

ЧислоДвоичное
25511111111
10001111101000
655351111111111111111

Записывать длинные последовательности единиц и нулей — медленно, чревато ошибками и трудно для чтения.

Решение: шестнадцатеричная система (основание 16).

Шестнадцатеричная система (или «hex») использует 16 символов:

ЦифраЗначение
0-9от 0 до 9
A10
B11
C12
D13
E14
F15

Почему шестнадцатеричная система идеально подходит для компьютеров:

Одна шестнадцатеричная цифра представляет ровно 4 бита (половину байта).

БитыНеобходимое количество шестнадцатеричных цифр
4 бита (ниббл)1 шестнадцатеричная цифра
8 бит (1 байт)2 шестнадцатеричные цифры
16 бит (2 байта)4 шестнадцатеричные цифры
32 бита (4 байта)8 шестнадцатеричных цифр
64 бита (8 байт)16 шестнадцатеричных цифр

Одно и то же число, три способа:

ДесятичнаяДвоичнаяШестнадцатеричная
25511111111FF
100011111010003E8
655351111111111111111FFFF

Обратите внимание, насколько шестнадцатеричная запись короче двоичной.

Где вы встретите шестнадцатеричные числа в ассемблере:

  • Адреса памяти (например, 0x7FFF или 0x402000)
  • Коды ASCII (например, 0x41 для 'A', 0x0a для новой строки)
  • Значения регистров в отладчиках
  • Значения цветов (например, 0xFF0000 для красного)

Шестнадцатеричные числа записываются с префиксом:

ПрефиксПримерЗначение
0x0xFFFF в шестнадцатеричной системе (255 в десятичной)
$$FFТо же самое (используется в некоторых ассемблерах)
hFFhТо же самое (устаревший стиль)

В этом курсе мы используем префикс 0x: 0x0a, 0x41, 0xFF.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы