Основы компьютерной грамотности и информационно-коммуникационной компетентности. Ч. 1: Введение в информатику. Лядова Л.Н - 13 стр.

UptoLike

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 в памяти компьютера будет представлено