Пн. Июн 1st, 2026

Представление целых чисел в памяти компьютера

Содержание раздела

  • 🔢 Представление целых чисел
  • 📏 Ограниченность диапазона чисел
  • ⚠️ Переполнение разрядной сетки
  • ➕➖ Беззнаковые и знаковые данные
  • 🔣 Двоичный дополнительный код
  • 🔧 Побитовые логические операции
  • ↔️ Логические и арифметические сдвиги
  • 🔐 Шифрование с помощью XOR

🔢 Представление целых чисел

Компьютер представляет целые числа в двоичной системе счисления. Каждое число хранится в виде последовательности битов (0 и 1).

Разрядная сетка
Фиксированное количество бит для числа
8 бит = 1 байт (256 значений)
16 бит = 2 байта (65536 значений)
32 бита = 4 байта (4 294 967 296 значений)

Важно: В современных компьютерах обычно используются 32-битные или 64-битные представления целых чисел.

Пример: Число 5 в 8-битном представлении: 00000101
Число 42 в 8-битном представлении: 00101010

📏 Ограниченность диапазона чисел

Из-за фиксированного количества бит диапазон представляемых чисел ограничен. Чем больше бит отводится под число, тем больше диапазон.

Диапазоны представления чисел
n бит → 2n возможных значений
8 бит: 0 до 255 (беззнаковые)
16 бит: 0 до 65 535 (беззнаковые)
32 бита: 0 до 4 294 967 295 (беззнаковые)
Количество бит Беззнаковый диапазон Знаковый диапазон
4 0 ÷ 15 -8 ÷ +7
8 0 ÷ 255 -128 ÷ +127
16 0 ÷ 65 535 -32 768 ÷ +32 767
32 0 ÷ 4 294 967 295 -2 147 483 648 ÷ +2 147 483 647

Пример: В 8-битной беззнаковой переменной можно хранить числа от 0 до 255. Число 256 в такой переменной представить невозможно.

⚠️ Переполнение разрядной сетки

Переполнение происходит, когда результат операции выходит за границы диапазона, который может представить разрядная сетка.

Переполнение разрядной сетки
Результат операции превышает максимальное значение
Старшие биты теряются
Получается неверный результат

Пример переполнения в 8-битной беззнаковой арифметике

Вычисление: 200 + 100 = 300

200 11001000
100 01100100
+
300 100101100

Результат в 8 битах: Отбрасываем старший бит

300 100101100
44 00101100

Вместо 300 получаем 44 (300 — 256)

Важно: Переполнение может приводить к серьезным ошибкам в программах, особенно в критических системах.

➕➖ Беззнаковые и знаковые данные

Целые числа могут представляться как беззнаковые (только положительные) и знаковые (положительные и отрицательные).

Представление чисел
Беззнаковые: все биты для значения
Знаковые: старший бит указывает знак
0 = положительное, 1 = отрицательное

Сравнение беззнакового и знакового представления

Характеристика Беззнаковое представление Знаковое представление
Диапазон (8 бит) 0 ÷ 255 -128 ÷ +127
Старший бит Часть числа Знак (0 = +, 1 = -)
Представление нуля Одно: 00000000 Одно: 00000000
Максимальное значение 2n — 1 2n-1 — 1
Минимальное значение 0 -2n-1

Пример: Число 42 в 8-битном представлении:
Беззнаковое: 00101010
Знаковое: 00101010 (то же самое, так как число положительное)

🔣 Двоичный дополнительный код

Для представления отрицательных чисел в компьютере используется дополнительный код (two’s complement). Это позволяет выполнять вычитание через сложение.

Алгоритм получения дополнительного кода
Инвертировать все биты числа (обратный код)
Добавить 1 к результату

Пример: представление числа -5 в 8-битном дополнительном коде

  1. Представляем 5 в двоичной системе: 00000101
  2. Инвертируем биты: 11111010 (обратный код)
  3. Добавляем 1: 11111010 + 1 = 11111011
  4. Результат: 11111011 — это -5 в дополнительном коде
5 00000101
→ инверсия
обратный код 11111010
+ 1
-5 11111011

Преимущества дополнительного кода: единое представление нуля, простые алгоритмы сложения и вычитания, естественное переполнение.

Пример: Проверим, что 5 + (-5) = 0:
00000101 (5) + 11111011 (-5) = 100000000
Отбрасываем старший бит (переполнение): 00000000 (0)

🔧 Побитовые логические операции

Побитовые операции выполняются над соответствующими битами чисел. Основные побитовые операции: И, ИЛИ, НЕ, XOR.

Побитовые операции
AND (И): оба бита равны 1 → 1, иначе 0
OR (ИЛИ): хотя бы один бит равен 1 → 1
XOR (искл. ИЛИ): биты разные → 1, одинаковые → 0
NOT (НЕ): инверсия каждого бита

Примеры побитовых операций (8 бит)

Операция Пример Результат
AND (&) 00110101 & 00001111 00000101
OR (|) 00110101 | 00001111 00111111
XOR (^) 00110101 ^ 00001111 00111010
NOT (~) ~00110101 11001010

Пример: Использование AND для выделения отдельных битов:
number & 1 — проверка младшего бита (четность)
number & 0xF — получение младших 4 битов

↔️ Логические и арифметические сдвиги

Сдвиги — это побитовые операции, перемещающие биты влево или вправо.

Типы сдвигов
Логический сдвиг: заполнение нулями
Арифметический сдвиг: сохранение знака
Циклический сдвиг: биты «перетекают»

Сравнение типов сдвигов (на примере 8-битного числа 10110110)

Тип сдвига Влево на 1 Вправо на 1
Логический 01101100 01011011
Арифметический 01101100 11011011 (знак сохранен)
Циклический 01101101 01011011

Применение сдвигов: Умножение и деление на степени двойки, извлечение битовых полей, криптография, оптимизация кода.

Пример: Арифметический сдвиг вправо на 1 эквивалентен делению на 2 с сохранением знака. Логический сдвиг влево на 1 эквивалентен умножению на 2.

🔐 Шифрование с помощью XOR

Операция XOR обладает уникальными свойствами, которые делают ее полезной для шифрования данных.

Свойства XOR для шифрования
A XOR 0 = A
A XOR A = 0
A XOR B XOR B = A

Процесс шифрования XOR

Шифрование:

Исходный текст 01100001
XOR
Ключ 10110110
=
Зашифрованный текст 11010111

Расшифрование:

Зашифрованный текст 11010111
XOR
Ключ 10110110
=
Исходный текст 01100001

Важно: XOR-шифрование уязвимо к атакам при повторном использовании ключа или при использовании короткого ключа. Это простой метод, не обеспечивающий высокий уровень безопасности.

Пример: В аппаратном обеспечении XOR часто используется для простых операций шифрования и создания псевдослучайных последовательностей.

Заключение

Понимание представления целых чисел в памяти компьютера необходимо для написания корректных и эффективных программ. Знание особенностей беззнакового и знакового представления, дополнительного кода, побитовых операций и сдвигов помогает избежать распространенных ошибок и оптимизировать вычисления.

Для ЕГЭ: Особое внимание уделите преобразованию чисел в дополнительный код, операциям сдвига и побитовым операциям. Помните об ограниченности диапазона чисел и возможности переполнения.