Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методика по Информатике / Теория по информатике / Соколовская Н.Н., Ерошенко А.В. Представление числовой информации в компьютерах.doc
Скачиваний:
75
Добавлен:
10.04.2015
Размер:
265.73 Кб
Скачать

1. Представление числовой информации

Существует два основных формата представления чисел в памяти ком­пьютера, один из них применяется для кодирования целых чисел (представление числа в формате с фиксированной точкой), второй – для задания некоторого подмножества действительных чисел (представление числа в формате с плавающей точкой). Рассмотрим каждый из форматов подробнее.

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

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

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

Целые числа в компьютере хранятся в памяти в формате с фиксированной запятой. В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд, а «запятая» «находится» справа после младшего разряда, т. е. вне разрядной сетки.

1.1.1. Целые числа без знака

Рассмотрим кодирование целых чисел без знака на примере данных типа byte в языке Basic и unsigned char в языке С++, занимающих в памяти один байт.

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

Минимальное число представляется нулями во всех разрядах и равно нулю. Максимально представимому числу соответствуют единицы во всех разрядах ячейки (двоичное число, состоящее из восьми единиц), оно равно 255 (). Примеры кодирования однобайтовых целых чисел без знака приведены в табл. 1.

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

Для улучшения читаемости внутреннего представления числа его записывают в шестнадцатеричной системе счисления.

Таблица 1

Примеры кодирования целых чисел без знака

Целое число без знака

Внутреннее представление числа

двоичная

система счисления

шестнадцатеричная система счисления

0

0000 0000

00

1

0000 0001

01

17

0001 0001

11

255

1111 1111

FF

1.1.2. Целые числа со знаком

Рассмотрим кодирование целых чисел со знаком на примере данных типа integer в языке Basic и int в языке С++, занимающих в памяти два байта (16 битов).

Каждый из 16 битов имеет определенное назначение, форма представления целого числа со знаком показана на рис. 1. Под знак отводится старший разряд ячейки: 0 – для положительных чисел, 1 – для отрицательных.

Для представления в компьютере целых чисел со знаком применяют дополнительный код, который позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно увеличивает скорость вычислений.

Для того чтобы понять, что такое дополнительный код, рассмотрим прямой и обратный коды.

Замечание 1. Для положительных чисел все три кода совпадают с двоичным представлением числа с помощью шестнадцати двоичных разрядов, при этом в пустые разряды записываются нули.

Рис. 1. Форма представления целого числа со знаком

Представим алгоритм получения дополнительного шестнадцатиразрядного двоичного кода отрицательного числа.

1) Записать прямой код отрицательного числа в 16 двоичных разрядах. Для этого модуль целого отрицательного числа надо перевести в двоичную систему счисления и дополнить полученный результат слева нулями до 16 битов.

2) Записать обратный код отрицательного числа в 16 двоичных разрядах. Для этого значения всех разрядов прямого кода инвертировать (все нули заменить на единицы, а все единицы – на нули).

3) Записать дополнительный код отрицательного числа в 16 двоичных разрядах. Для этого к обратному коду, рассматриваемому как шестнадцатиразрядное неотрицательное двоичное число, прибавить единицу.

Замечание 2. Обратный код отрицательного числа является дополнением модуля этого числа до числа , а дополнительный код – до числа.

Примеры представления двухбайтовых целых чисел со знаком приведены в табл. 2.

Минимальное отрицательное число, которое можно представить с по­мощью двух байтов, равно –32768.

Максимально представимому положительному числу соответствуют единицы во всех разрядах ячейки (двоичное число, состоящее из нуля (в знаковом разряде) и пятнадцати единиц), оно равно 32767 ().

Таблица 2

Примеры представления двухбайтовых целых чисел со знаком

Вид кода

Целое число со знаком

–32768

–23

18

Прямой

1000 0000 0000 0000

0000 0000 0001 0111

0000 0000 0001 0010

Обратный

0111 1111 1111 1111

1111 1111 1110 1000

0000 0000 0001 0010

Дополнительный (внутреннее представление)

1000 0000 0000 0000

1111 1111 1110 1001

0000 0000 0001 0010

80 00

FF E9

00 12