Представление чисел в компьютере
💻 Информатика · 10 класс
Как компьютер хранит числа
Внутри компьютера нет привычных нам десятичных цифр. Любая информация в нём кодируется последовательностью двух состояний: есть сигнал или нет, заряжена ячейка памяти или разряжена. Эти два состояния обозначают цифрами 0 и 1, а сама запись чисел такими цифрами называется двоичной системой счисления. Один разряд (0 или 1) — это бит, восемь битов образуют байт. Чтобы понять, как машина работает с числами, нужно разобраться в системах счисления и в том, чем отличается хранение целых чисел от вещественных.
Позиционные системы счисления
Система счисления называется позиционной, если значение цифры зависит от её позиции в записи. Привычная нам десятичная система имеет основание 10: число 253 означает 2·100 + 5·10 + 3·1. Точно так же устроены двоичная (основание 2), восьмеричная (8) и шестнадцатеричная (16) системы. В последней не хватает обычных цифр, поэтому к ним добавляют буквы A, B, C, D, E, F для обозначения значений от 10 до 15.
| Система | Основание | Цифры | Где применяют |
|---|---|---|---|
| Двоичная | 2 | 0, 1 | внутреннее представление в памяти |
| Восьмеричная | 8 | 0–7 | запись прав доступа в системах |
| Десятичная | 10 | 0–9 | повседневные вычисления |
| Шестнадцатеричная | 16 | 0–9, A–F | цвета, адреса памяти |
Перевод числа в двоичную систему
Чтобы перевести целое число из десятичной системы в двоичную, его последовательно делят на 2 и записывают остатки снизу вверх.
Переведём 13 в двоичную систему:
13 : 2 = 6, остаток 1
6 : 2 = 3, остаток 0
3 : 2 = 1, остаток 1
1 : 2 = 0, остаток 1
Читаем остатки снизу вверх: 1101
Проверка: 1·8 + 1·4 + 0·2 + 1·1 = 13Целые и вещественные числа
Целые числа хранятся в памяти точно: каждому отводится фиксированное число байтов. Например, в одном байте (8 битов) помещаются значения от 0 до 255. Чтобы хранить и отрицательные числа, применяют дополнительный код: старший бит становится знаковым, и тогда тот же байт хранит числа от −128 до 127.
Вещественные (дробные) числа хранятся иначе — в формате с плавающей запятой. Число разбивается на знак, мантиссу (значащие цифры) и порядок (степень двойки). Это позволяет хранить очень большие и очень маленькие величины, но почти всегда — приближённо. Именно поэтому компьютер может выдать, что 0.1 + 0.2 не равно ровно 0.3: дробь 0,1 не представляется в двоичной системе конечным числом разрядов.
Частые ошибки. Не путайте бит и байт: 8 битов = 1 байт. При переводе в двоичную систему остатки читают снизу вверх, а не сверху вниз. И помните: вещественные числа в компьютере хранятся приближённо, поэтому сравнивать их на точное равенство опасно.
Кратко о главном
- Внутри компьютера все числа кодируются двоичной системой из 0 и 1.
- В позиционной системе значение цифры зависит от её позиции; основание определяет набор цифр.
- Перевод в двоичную систему — это деление на 2 с чтением остатков снизу вверх.
- Целые числа хранятся точно, отрицательные — в дополнительном коде.
- Вещественные числа хранятся с плавающей запятой и почти всегда приближённо.