Отрицательные числа компьютер хранит не со знаком «минус», а в дополнительном коде — и благодаря этому вычитание сводится к сложению. Отсюда же берутся переполнение и странные результаты у больших чисел.
Что нужно знать
- Дополнительный код отрицательного числа: инвертировать все разряды модуля и прибавить единицу.
- Старший бит служит знаковым: 0 — число положительное, 1 — отрицательное.
- В $n$ разрядах помещаются числа от $-2^{n-1}$ до $2^{n-1} - 1$; для 8 бит это от −128 до 127.
- Вычитание выполняется как сложение с дополнительным кодом — отдельной схемы вычитания в процессоре нет.
- Переполнение возникает, когда результат выходит за диапазон: знак результата оказывается неверным.
- Вещественные числа хранятся как мантисса и порядок, поэтому точность ограничена и дробные значения представляются приближённо.
- Сравнивать вещественные числа на точное равенство нельзя: сравнивают модуль разности с малой величиной.
Где чаще всего ошибаются
- Инвертируют разряды, но забывают прибавить единицу.
- Считают диапазон симметричным: отрицательных значений на одно больше.
- Проверяют равенство вещественных чисел знаком «равно».
- Принимают знаковый бит за обычный разряд при переводе в десятичную.
Проверить себя
По этой же главе есть проверочная работа из 11 заданий на 25 минут. Проверка автоматическая, результат виден сразу — и по работе целиком, и по каждой теме.
Информатика · 10 класс · Поляков, 2023 · Глава 4 · Компьютерная арифметика