Сб. Окт 17th, 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 часто используется для простых операций шифрования и создания псевдослучайных последовательностей.

Заключение

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

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