Курс 8 • Урок 1 из 8 • 3 часа учебной нагрузки

Двоичная, десятичная и шестнадцатеричная запись

Цель: Освоить двоичную, десятичную и шестнадцатеричную системы счисления и научиться переводить числа между ними без потери смысла разрядов.

3 часа короткая теория, самостоятельная практика, проверка результата и тест.

Суть темы

Система счисления задаёт, какие символы используются и какой вес имеет каждая позиция. В десятичной системе основание 10, в двоичной — 2, в шестнадцатеричной — 16. Одно и то же число можно записать разными символами: значение не меняется, меняется форма представления.

Двоичная запись естественна для цифровой логики, а шестнадцатеричная компактно группирует биты: одна hex-цифра соответствует четырём битам. Поэтому адреса, регистры, маски и дампы памяти часто пишут в hex.

  • Вес разряда равен основанию в степени позиции: b^0, b^1, b^2 и так далее.
  • В двоичной системе используются 0 и 1; в hex после 9 идут A, B, C, D, E, F со значениями 10…15.
  • Для перевода из двоичной в hex биты группируют по четыре от младшего разряда.
  • Для перевода в десятичную складывают значения ненулевых разрядов.
  • При работе с фиксированной разрядностью ведущие нули важны для структуры слова, хотя не меняют числовое значение.

Ключевые связи и параметры

Например, 101101₂ = 1·2⁵+0·2⁴+1·2³+1·2²+0·2+1 = 45₁₀. Для hex эту запись дополняют слева: 0010 1101₂ = 2D₁₆. Обратный перевод выполняется заменой каждой hex-цифры четырьмя битами.

Десятичное число можно переводить в двоичное последовательным делением на 2 и чтением остатков снизу вверх или разложением по степеням 2. Для hex аналогично используют деление на 16.

1010₂ = 10₁₀ = A₁₆1111₂ = 15₁₀ = F₁₆1 hex digit = 4 bits

Разбор примера

Число 0x2F: 2·16+15=47. В двоичной форме 2=0010, F=1111, поэтому 0x2F=0010 1111₂. В 8-битном регистре ведущие нули показывают полную разрядность.

Битовая маска 0x80 соответствует 1000 0000₂ — установлен только старший бит байта. 0x0F = 0000 1111₂ — установлены четыре младших бита.

Практическая работа и проверка

Выполняйте переводы вручную, затем проверяйте калькулятором программиста. Цель — понимать структуру, а не нажимать кнопку.

  1. Переведите 13, 31, 45 и 255 из decimal в binary и hex.
  2. Переведите 10101100₂ в decimal и hex.
  3. Разложите 0xA5 на две тетрады и запишите binary.
  4. Для 16-битного числа 0x03F0 подпишите старший и младший байты.
  5. Составьте маску, которая устанавливает только биты 0, 2 и 7 одного байта.
Всегда явно указывайте основание записи — индексом, префиксом 0b/0x или контекстом.

Типичные ошибки и диагностика

  • Читать 1010 как десятичную тысячу десять, когда это двоичная запись.
  • Группировать двоичные биты в hex не от младшего разряда.
  • Считать A символом без числового значения 10.
  • Терять разрядность регистра, убирая ведущие нули там, где структура слова важна.

Ошибки систем счисления часто проявляются как неправильные маски регистров и адреса. Перед поиском аппаратной неисправности полезно представить hex-константу в binary и увидеть, какие именно биты она меняет.

Связь с реальным устройством

Системы счисления — язык цифровых данных. Уверенный перевод между binary, decimal и hex облегчает работу с регистрами, логическими масками, памятью и протоколами.

Что нужно запомнить

  • Вес разряда определяется степенью основания.
  • Одна hex-цифра кодирует четыре бита.
  • Binary→hex удобно переводить тетрадами.
  • Hex A…F соответствуют десятичным 10…15.
  • Основание числа нужно обозначать явно.
Проверка знаний

Вопросы по уроку

Нужно 75%
Загрузка вопросов…