ВУЗ:
Составители:
25
целые числа служат для нумерации элементов в различных на-
борах данных, для обозначения даты и времени, для кодирова-
ния текста, изображения и звука), реализации средств крипто-
графической защиты информации (защиты с помощью
шифрования), в программах электронной почты и в средствах
навигации в Internet для записи адреса и т.д. Поэтому
аппарату-
рой компьютеров обычно поддерживается несколько форматов
представления целочисленных данных и множество операций
над ними.
Целые числа в памяти компьютера всегда хранятся в фор-
мате с фиксированной точкой, что, безусловно, ограничивает
диапазон чисел, с которыми может работать компьютер, и тре-
бует учета особенностей организации выполнения арифметиче-
ских действий в ограниченном
числе разрядов.
Рассмотрим подробнее это представление.
Все числа, которые хранятся в памяти компьютера, занима-
ют определенное количество двоичных разрядов. Это количест-
во определяется форматом числа. Обычно для представления
целых чисел используются несколько форматов (например, в
IBM-совместимых персональных компьютерах поддерживается
три формата: байт (8 разрядов), слово (16 разрядов), двойное
слово (32 разряда)). Целые числа
вписываются в разрядную сет-
ку, соответствующую формату. Для целых чисел разрядная сет-
ка имеет вид
n–1 n–2 n–3 2 1 0
S b
n–2
b
n–3
… b
2
b
1
b
0
где b
i
– разряды двоичной записи целого числа (запись числа
имеет вид последовательности цифр b
n–2
b
n–3
... b
1
b
0
, раздели-
тель между целой и дробной частью числа зафиксирован после
b
0
, дробной части нет), S – разряд, отведенный для представле-
ния знака числа (для положительных чисел знак «+» кодируется
цифрой 0, а знак «–» для отрицательных – цифрой 1), n – коли-
чество двоичных разрядов в разрядной сетке.
Если двоичная запись числа оказывается короче отведенной
для его хранения в памяти компьютера разрядной сетки, то
старшие разряды заполняются нулями.
26
Например, число 11
10
= 1011
2
в формате байта будет запи-
сано как
Номер разряда 7 6 5 4 3 2 1 0
Разряды числа
0 0 0 0 1 0 1 1
(старший (знаковый) разряд заштрихован). В формате слова то
же число будет выглядеть как
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1
Отрицательные числа для упрощения выполнения операций
хранятся в дополнительном коде, который получается путем об-
ращения (инверсии) всех разрядов в двоичной записи числа,
вписанной в разрядную сетку, и добавлением 1.
Такая запись чисел ограничивает диапазоны значений, с ко-
торыми может работать компьютер. Например, для чисел в фор-
мате байта представимы значения от –128 (–2
7
) до 127 (2
7
–
1),
для чисел в формате слова – от –32 768 (–2
15
) до 32 767 (2
15
–1), а
длинные целые числа в формате двойного слова могут прини-
мать значения из диапазона от –2 147 483 648 до 2 147 483 647.
Если по условиям задачи используются только положитель-
ные значения, то их можно хранить в формате чисел без знака –
старший разряд рассматривается как разряд, содержащий двоич-
ную цифру записи числа, а не знак. При этом
диапазон предста-
вимых положительных чисел увеличивается. Например, в байт
можно записать числа от 0 до 255 (2
8
–
1), а в слово – значения от
0 до 65 535 (2
16
–
1).
Особенности представления чисел в памяти компьютера мо-
гут привести и к ошибкам при обработке данных.
Рассмотрим пример. Предположим, что программа выпол-
няет функции подсчета каких-либо объектов и для хранения ко-
личества этих объектов используется представление данных в
формате целого числа со знаком, записанного в байт. Рассмот-
рим ситуацию, когда
количество объектов уже стало равным 127
и увеличивается еще на 1. Результат должен быть равен 128, но
сможем ли мы его получить с помощью компьютера, если рабо-
таем со знаковыми числами в формате байта?
Целое число 127 в памяти компьютера будет представлено
25 26 целые числа служат для нумерации элементов в различных на- Например, число 1110 = 10112 в формате байта будет запи- борах данных, для обозначения даты и времени, для кодирова- сано как ния текста, изображения и звука), реализации средств крипто- Номер разряда 7 6 5 4 3 2 1 0 графической защиты информации (защиты с помощью Разряды числа 0 0 0 0 1 0 1 1 шифрования), в программах электронной почты и в средствах навигации в Internet для записи адреса и т.д. Поэтому аппарату- (старший (знаковый) разряд заштрихован). В формате слова то рой компьютеров обычно поддерживается несколько форматов же число будет выглядеть как представления целочисленных данных и множество операций 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 над ними. 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 Целые числа в памяти компьютера всегда хранятся в фор- мате с фиксированной точкой, что, безусловно, ограничивает Отрицательные числа для упрощения выполнения операций диапазон чисел, с которыми может работать компьютер, и тре- хранятся в дополнительном коде, который получается путем об- бует учета особенностей организации выполнения арифметиче- ращения (инверсии) всех разрядов в двоичной записи числа, ских действий в ограниченном числе разрядов. вписанной в разрядную сетку, и добавлением 1. Рассмотрим подробнее это представление. Такая запись чисел ограничивает диапазоны значений, с ко- Все числа, которые хранятся в памяти компьютера, занима- торыми может работать компьютер. Например, для чисел в фор- ют определенное количество двоичных разрядов. Это количест- мате байта представимы значения от –128 (–27) до 127 (27 – 1), во определяется форматом числа. Обычно для представления для чисел в формате слова – от –32 768 (–215) до 32 767 (215–1), а целых чисел используются несколько форматов (например, в длинные целые числа в формате двойного слова могут прини- IBM-совместимых персональных компьютерах поддерживается мать значения из диапазона от –2 147 483 648 до 2 147 483 647. три формата: байт (8 разрядов), слово (16 разрядов), двойное Если по условиям задачи используются только положитель- слово (32 разряда)). Целые числа вписываются в разрядную сет- ные значения, то их можно хранить в формате чисел без знака – ку, соответствующую формату. Для целых чисел разрядная сет- старший разряд рассматривается как разряд, содержащий двоич- ка имеет вид ную цифру записи числа, а не знак. При этом диапазон предста- вимых положительных чисел увеличивается. Например, в байт n–1 n–2 n–3 2 1 0 можно записать числа от 0 до 255 (28 – 1), а в слово – значения от S b n–2 b n–3 … b2 b1 b0 0 до 65 535 (216 – 1). где b i – разряды двоичной записи целого числа (запись числа Особенности представления чисел в памяти компьютера мо- имеет вид последовательности цифр b n–2 b n–3 ... b 1 b 0, раздели- гут привести и к ошибкам при обработке данных. тель между целой и дробной частью числа зафиксирован после Рассмотрим пример. Предположим, что программа выпол- b0, дробной части нет), S – разряд, отведенный для представле- няет функции подсчета каких-либо объектов и для хранения ко- ния знака числа (для положительных чисел знак «+» кодируется личества этих объектов используется представление данных в цифрой 0, а знак «–» для отрицательных – цифрой 1), n – коли- формате целого числа со знаком, записанного в байт. Рассмот- чество двоичных разрядов в разрядной сетке. рим ситуацию, когда количество объектов уже стало равным 127 Если двоичная запись числа оказывается короче отведенной и увеличивается еще на 1. Результат должен быть равен 128, но для его хранения в памяти компьютера разрядной сетки, то сможем ли мы его получить с помощью компьютера, если рабо- старшие разряды заполняются нулями. таем со знаковыми числами в формате байта? Целое число 127 в памяти компьютера будет представлено
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »