Двоичное кодирование числовой информации.
Представление числовой информации в компьютере.
Представление чисел в формате с фиксированной
запятой. Целые числа в компьютере хранятся
в памяти в формате с фиксированной запятой. В этом случае каждому
разряду ячейки памяти соответствует всегда один и тот же разряд числа, а
«запятая» «находится» справа после младшего разряда, то есть вне разрядной
сетки.
Для
хранения целых неотрицательных чисел отводится одна ячейка памяти (8
битов). Например, число А2 = 111100002 будет храниться в ячейке памяти
следующим образом:
Максимальное
значение целого неотрицательного числа достигается в случае, когда во всех
ячейках хранятся единицы. Для n-разрядного
представления оно будет равно:
2n – 1.
Определим
диапазон чисел, которые могут храниться в оперативной памяти в формате целых
неотрицательных чисел. Минимальное число соответствует восьми нулям,
хранящимся в восьми битах ячейки памяти, и равно нулю. Максимальное число
соответствует восьми единицам и равно:
А =
1·27+1·26+1·25+1·24+1·23+1·22+1·21+1·20 = 1·28 – 1 = 25510.
Диапазон
изменения целых неотрицательных чисел: от 0 до 255.
Для
хранения целых чисел со знаком отводится две ячейки памяти (16 битов), причем
старший (левый) разряд отводится под знак числа (если число положительное, то в
знаковый разряд записывается 0, если отрицательное – 1).
Представление
в компьютере положительных чисел с использованием формата «знак-величина»
называется прямым кодом числа. Например, число 200210 = 111110100102
будет представлено в 16-разрядном представлении следующим образом:
Максимальное
положительное число (с учетом выделения одного разряда на знак) для целых чисел
со знаком в n-разрядном представлении
равно:
2n-1 – 1.
Для
представления отрицательных чисел используется дополнительный код.
Дополнительный код позволяет заменить арифметическую операцию вычитания
операцией сложения, что существенно упрощает работу процессора и увеличивает
его быстродействие.
Дополнительный
код отрицательного числа А, хранящегося в n ячейках, равен 2n – |А|.
Для
получения дополнительного кода отрицательного числа можно использовать довольно
простой алгоритм:
1.
Модуль числа записать в прямом коде в n двоичных разрядах.
2.
Получить обратный код числа, для этого
значения всех битов инвертировать (все единицы заменить на нули и все нули
заменить на единицы).
3.
К полученному коду прибавить единицу.
Запишем
дополнительный код отрицательного числа –2002 для 16-разрядного компьютерного
представления:
При
n-разрядном представлении числа А в
дополнительном коде старший разряд выделяется для хранения знака числа
(единицы).
При
n-разрядном представлении отрицательного числа А
в дополнительном коде старший разряд выделяется для хранения знака числа
(единицы). В остальных разрядах записывается положительное число
2n–1 – |A|.
Максимальное
значение модуля числа А в n-разрядном
представлении равно:
|A| = 2n–1.
Тогда
минимальное отрицательное число равно:
А = – 2n–1.
Определим
диапазон чисел, которые могут храниться в оперативной памяти в формате длинных
целых чисел со знаком (для хранения таких чисел отводится четыре ячейки
памяти – 32 бита).
Максимальное
положительное целое число (с учетом выделения одного разряда на знак) равно:
А = 231 – 1 = 2 147 483 64710.
Минимальное
отрицательное целое число равно:
А = – 231 = – 2 147 483 64810.
Достоинством
представления чисел в формате с фиксированной запятой являются простота
и наглядность представления чисел, а также простота алгоритмов реализации
арифметических операций.
Недостатком
представления чисел с фиксированной запятой является небольшой диапазон
представления величин, недостаточный для решения математических, физических,
экономических и других задач, в которых используются как очень малые, так и
очень большие числа.
Представление
чисел в формате с плавающей запятой.
Вещественные числа хранятся и обрабатываются в компьютере в формате с
плавающей запятой. В этом случае положение запятой в записи числа может
изменяться.
Формат
чисел с плавающей запятой базируется на экспоненциальной форме записи, в
которой может быть представлено любое число. Так число А может быть
представлено в виде:
А
= m · qn,
где
m – мантисса числа;
q – основание системы счисления;
n – порядок числа.
Для
единообразия представления чисел с плавающей запятой используется
нормализованная форма, при которой мантисса отвечает условию:
1/n ≤ |m| < 1.
Это
значит, что мантисса должна быть правильной дробью и иметь после запятой цифру,
отличную от нуля.
Преобразуем
десятичное число 555,55 записанное в естественной форме, в экспоненциальную
форму с нормализованной мантиссой:
555,55
= 0,55555 · 103.
Здесь
нормализованная мантисса: m = 0,55555,
порядок: n = 3.
Число
в формате с плавающей запятой занимает в памяти компьютера 4 (число обычной
точности) или 8 байтов (число двойной точности). При записи числа с
плавающей запятой выделяются разряды для хранения знака мантиссы, знака
порядка, порядка и мантиссы.
Диапазон
изменения чисел определяется количеством разрядов, отведенных для хранения
порядка числа, а точность (количество значащих цифр) определяется количеством
разрядов, отведенных для хранения мантиссы.
Определим
максимальное число и его точность для формата чисел обычной точности, если для
хранения порядка и его знака отводится 8 разрядов, а для хранения мантиссы и ее
знака – 24 разряда:
Максимальное значение порядка
числа составит 11111112 = 12710, и, следовательно, максимальное значение числа
составит:
2127 = 1,7014118346046923173168730371588
· 1038.
Максимальное значение
положительной мантиссы равно:
223 – 1 ≈ 223 = 2(10 · 2,3) ≈
10002,3 = 10(3 · 2,3) ≈ 107.
Таким образом максимальное
значение чисел обычной точности вычислений составит 1,701411·1038 (количество
значащих цифр десятичного числа в данном случае ограниченно 7 разрядами).
|