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

Компьютер представляет числа, символы и другие данные в виде двоичного кода. Способы представления зависят от типа данных: целые числа, вещественные числа и символы имеют свои особенности кодировки.


Целые числа

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

Способы представления

  1. Беззнаковое представление:

    • Используются только положительные числа и ноль.
    • Диапазон: 00 до 2n12^n - 1, где nn — количество бит.
  2. Знаковое представление:

    • Используется для представления как положительных, так и отрицательных чисел.
    • Способы кодировки:
  • Прямой код
  • Обратный код
  • Дополнительный код (наиболее распространённый)

Пример

Для 88-битного знакового числа в дополнительном коде:

  • 510=0000010125_{10} = 00000101_2
  • 510=111110112-5_{10} = 11111011_2

Вещественные числа

Вещественные числа (числа с плавающей запятой) представляются в формате, соответствующем стандарту IEEE 754. Они состоят из трёх частей:

  1. Знак: определяет положительное или отрицательное число.
  2. Порядок: экспонента, определяющая положение десятичной точки.
  3. Мантисса: дробная часть числа.

Форматы IEEE 754

  1. Одинарная точность (32 бита):

    • 11 бит — знак
    • 88 бит — порядок
    • 2323 бита — мантисса
  2. Двойная точность (64 бита):

    • 11 бит — знак
    • 1111 бит — порядок
    • 5252 бита — мантисса

Пример

Число 5.75-5.75 в формате IEEE 754 (одинарная точность):

  • Знак: 11
  • Порядок: 1000000110000001 (смещённая экспонента E=2E = 2)
  • Мантисса: 1011100...01011100...0

Результат: 11000000101110000000000000000000211000000101110000000000000000000_2


Символы

Символы представляются в памяти как числа, соответствующие их кодам в таблицах символов. Наиболее распространённые таблицы:

  1. ASCII:
    • Использует 77 бит для кодировки.
    • Примеры:
  • A=65A = 65
  • a=97a = 97
  • Пробел = 3232
  1. Unicode (UTF-8, UTF-16):
    • Расширяет ASCII для представления символов из различных языков и систем письма.
    • Использует переменную длину кодирования (от 11 до 44 байт).

Пример

Символ “’A’” в памяти компьютера:

  • ASCII: 01000001201000001_2
  • UTF-8: 01000001201000001_2 (совпадает для базовых символов ASCII)

Заключение

Понимание представления данных в памяти компьютера является ключевым аспектом программирования и компьютерной науки. Целые числа, вещественные числа и символы имеют свои форматы представления, оптимизированные для различных задач. Эти различия влияют на объём памяти, точность вычислений и совместимость данных между системами.