Двоичная система в вычислительной технике
Как компьютеры мыслят единицами и нулями
Понять двоичную системуКаждая фотография, видео, программа и веб-сайт в конечном счёте существуют как последовательности единиц и нулей. Двоичная система — это не просто ещё одна система счисления, а основа всех цифровых технологий. Понимание двоичной системы раскрывает принципы работы компьютеров на самом фундаментальном уровне.
Биты и байты
Бит
- Наименьшая единица данных
- Один двоичный разряд: 0 или 1
- Сокращение от «binary digit» (двоичная цифра)
- Может представлять два состояния (да/нет, вкл./выкл., истина/ложь)
Байт
- Группа из 8 бит
- Может представлять 2⁸ = 256 различных значений (0–255)
- Стандартная единица для хранения символов
- Основа для более крупных единиц (КБ, МБ, ГБ)
Более крупные единицы
| Единица | Размер | Значения |
|---|---|---|
| Байт | 8 бит | 256 |
| Слово (16-бит) | 2 байта | 65 536 |
| Двойное слово (32-бит) | 4 байта | ~4,3 млрд |
| Четверное слово (64-бит) | 8 байт | ~18,4 квинтиллиона |
Как представляются данные
Текст (символы)
- ASCII: 7 бит, 128 символов
- Расширенный ASCII: 8 бит, 256 символов
- Unicode (UTF-8): переменная длина, миллионы символов
Пример: «A» = 01000001 (65 в десятичной системе)
Числа
- Целые числа: прямое двоичное представление
- Отрицательные числа: дополнительный код
- Дробные числа: формат с плавающей точкой (IEEE 754)
Изображения
- Пиксели представляются как числа
- RGB: 3 байта на пиксель (по 8 бит для красного, зелёного и синего)
- Изображение 1920×1080 ≈ 6,2 млн байт без сжатия
Аудио
- Звуковые волны дискретизируются как числа
- Качество CD: 16-битные сэмплы, 44 100 раз в секунду
Двоичная арифметика
Сложение
Аналогично десятичному, но перенос при 2:
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 10 (0, перенос 1)
- 1 + 1 + 1 = 11 (1, перенос 1)
Пример: 1011 + 1101
1011 + 1101 ------ 11000
= 11 + 13 = 24 ✓
Логические вентили
Аппаратная реализация двоичных операций через логические вентили:
Основные вентили
| Вентиль | Функция | Таблица истинности |
|---|---|---|
| AND | Оба входа должны быть 1 | 1 AND 1 = 1 |
| OR | Хотя бы один вход равен 1 | 1 OR 0 = 1 |
| NOT | Инвертирует вход | NOT 1 = 0 |
| XOR | Ровно один вход равен 1 | 1 XOR 1 = 0 |
| NAND | NOT AND | 1 NAND 1 = 0 |
Сложные операции (сложение, сравнение) строятся из комбинаций этих простых вентилей.
Числа со знаком: дополнительный код
Как компьютеры представляют отрицательные числа:
Метод
- Инвертировать все биты
- Прибавить 1
Пример: -5 в 8-битном формате
- 5 = 00000101
- Инверсия: 11111010
- Прибавить 1: 11111011
- -5 = 11111011
Почему дополнительный код?
- Сложение работает естественным образом (без особых случаев)
- Единственное представление для нуля
- Легко реализуется аппаратно
Побитовые операции в программировании
Языки программирования предоставляют операторы для работы с битами:
Основные операции
- AND (&): маскирование определённых бит
- OR (|): установка определённых бит
- XOR (^): переключение бит, шифрование
- NOT (~): инверсия всех бит
- Сдвиг влево (<<): умножение на 2ⁿ
- Сдвиг вправо (>>): деление на 2ⁿ
Пример: проверка чётности числа
n & 1 == 0 означает, что n чётное
(Последний бит определяет чётность/нечётность)
Двоичная система в современных вычислениях
Адреса памяти
- 32-бит: может адресовать 2³² = 4 ГБ
- 64-бит: может адресовать 2⁶⁴ = 16 эксабайт
Сетевые адреса
- IPv4: 32 бита (например, 192.168.1.1)
- IPv6: 128 бит
Размеры файлов
- Все файлы — это последовательности байтов
- Тип файла определяется его содержимым/структурой
Шифрование
- AES использует ключи длиной 128, 192 или 256 бит
- SHA-256 генерирует 256-битные хеши
Заключение
Двоичная система является языком всех цифровых систем, поскольку электронные компоненты естественным образом имеют два состояния. Все цифровые данные — текст, изображения, аудио, видео, программы — в конечном счёте представляются как последовательности бит. Понимание двоичной системы проливает свет на работу компьютеров: от логических вентилей, выполняющих операции, до байтов, хранящих символы, и бит, передаваемых по сетям. Хотя мы редко работаем с двоичным кодом напрямую, он лежит в основе всего цифрового мира.