Menu
Coddy logo textTech

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

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

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

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

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

ЧислоДвоичное представление
25511111111
10001111101000
655351111111111111111

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

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

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

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

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

Один hex-разряд представляет ровно 4 bits (половину byte).

bitsНеобходимое количество hex digits
4 bits (ниббл)1 hex-разряд
8 bits (1 byte)2 hex-разряда
16 bits (2 bytes)4 hex-разряда
32 bits (4 bytes)8 hex-разрядов
64 bits (8 bytes)16 hex-разрядов

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

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

Обратите внимание, насколько hex короче двоичной системы счисления.

Где вы встретите hex в ассемблере:

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

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

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

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

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

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

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

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

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

Потренируйтесь самостоятельно: Песочница Assembly