Двоичная, десятичная и шестнадцатеричная запись
Цель: Освоить двоичную, десятичную и шестнадцатеричную системы счисления и научиться переводить числа между ними без потери смысла разрядов.
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₂ — установлены четыре младших бита.
Практическая работа и проверка
Выполняйте переводы вручную, затем проверяйте калькулятором программиста. Цель — понимать структуру, а не нажимать кнопку.
- Переведите 13, 31, 45 и 255 из decimal в binary и hex.
- Переведите 10101100₂ в decimal и hex.
- Разложите 0xA5 на две тетрады и запишите binary.
- Для 16-битного числа 0x03F0 подпишите старший и младший байты.
- Составьте маску, которая устанавливает только биты 0, 2 и 7 одного байта.
Типичные ошибки и диагностика
- Читать 1010 как десятичную тысячу десять, когда это двоичная запись.
- Группировать двоичные биты в hex не от младшего разряда.
- Считать A символом без числового значения 10.
- Терять разрядность регистра, убирая ведущие нули там, где структура слова важна.
Ошибки систем счисления часто проявляются как неправильные маски регистров и адреса. Перед поиском аппаратной неисправности полезно представить hex-константу в binary и увидеть, какие именно биты она меняет.
Связь с реальным устройством
Системы счисления — язык цифровых данных. Уверенный перевод между binary, decimal и hex облегчает работу с регистрами, логическими масками, памятью и протоколами.
Что нужно запомнить
- Вес разряда определяется степенью основания.
- Одна hex-цифра кодирует четыре бита.
- Binary→hex удобно переводить тетрадами.
- Hex A…F соответствуют десятичным 10…15.
- Основание числа нужно обозначать явно.