Пример 4.2.

Системы счисления и формы представления чисел

ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ЭВМ

ИНФОРМАЦИОННО-ЛОГИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ

· Представление информации в ЭВМ

· Логические основы построения ПК

· Программное управление ЭВМ

Информация в ЭВМ кодируется, как правило, в двоичной или в двоично-десятичной системе счисления.

Система счисления - это способ наименования и изображения чисел с помощью символов, имеющих определенные количественные значения.

В зависимости от способа изображения чисел системы счисления делятся на позиционные и непозиционные.

В позиционной системе счисления количественное значение каждой цифры зависит от ее места (позиции) в числе. В непозиционной системе счисления цифры не меняют своего количественного значения при изменении их расположения в числе. Количество (Р) различных цифр, используемых для изображения числа в позиционной системе счисления, называется основанием системы счисления. Значения цифр лежат в пределах от 0 до Р-1. В общем случае запись любого смешанного числа в системе счисления с основанием Р будет представлять собой ряд вида:

am-1Pm-1+am-2Pm-2+...+a1P1+a0PO+a-1P-1+a-2P-2+...+a-sP-s, (1)

где нижние индексы определяют местоположение цифры в числе (разряд):

  • положительные значения индексов - для целой части числа (m разрядов);
  • отрицательные значения - для дробной (s разрядов).

Пример 4.1. Позиционная система счисления - арабская десятичная система, в которой:основание P=10, для изображения чисел используются 10 цифр (от 0 до 9). Непозиционная система счисления - римская, в которой для каждого числа используется специфическое сочетание символов (XIV, CXXVII и т.п.).

Максимальное целое число, которое может быть представлено в т разрядах:

Nmaх=Pm-1.

Минимальное значащее (не равное 0) число, которое можно записать в s разрядах дробной части:

Nmin=P-s.

Имея в целой части числа m, а в дробной s разрядов, можно записать всего Pm+s разных чисел.

Двоичная система счисления имеет основание Р=2 и использует для представления информации всего две цифры: 0 и 1. Существуют правила перевода чисел из одной системы счисления в другую, основанные в том числе и на соотношении (1).

101110,101(2) =1*25+0*24+1*23+l*22+1*21+0*20+l*2-1+0*2-2+l*2-3=46,625(10) ,

т.е. двоичное число 101110,101 равно десятичному числу 46,625.

В вычислительных машинах применяются две формы представления двоичных чисел:

  • естественная форма или форма с фиксированной запятой (точкой);
  • нормальная форма или форма с плавающей запятой (точкой).

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

Пример 4.3. В десятичной системе счисления имеются 5 разрядов в целой части числа (до запятой) и 5 разрядов в дробной части числа (после запятой); числа, записанные в такую разрядную сетку, имеют вид:

+00721,35500; +00000,00328; -10301,20260.

Эта форма наиболее проста, естественна, но имеет небольшой диапазон представления чисел и поэтому не всегда приемлема при вычислениях.

Пример 4.4. Диапазон значащих чисел (N) в системе счисления с основанием Р при наличии m разрядов в целой части и s разрядов в дробной части числа (без учета знака числа) будет:

Р-s ≤ N ≤ Рm- P-s.

При Р=2, m=10 и s = 6: 0,015≤ N≤ 1024.

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

С плавающей запятой каждое число изображается в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая- порядком, причем абсолютная величина мантиссы должна быть меньше 1, а порядок - целым числом. В общем виде число в форме с плавающей запятой может быть представлено так:

N=±MP±r,

где М-мантисса числа (|М| < 1);

r- порядок числа (r- целое число);

Р- основание системы счисления.

Пример 4.5. Приведенные в примере 4.3 числа в нормальной форме запишутся так:

+0,721355*103; +0,328* 10-3; -0,103012026*105.

Нормальная форма представления имеет огромный диапазон отображения чисел и является основной в современных ЭВМ.

Пример 4.6. Диапазон значащих чисел в системе счисления с основанием Рпри наличии m разрядов у мантиссы и s разрядов у порядка (без учета знаковых разрядов порядка и мантиссы) будет:

P-m*P-(P-1) ≤ N ≤ (1-P-m)*P(P-1).

При P=2, m=10 и s=6 диапазон чисел простирается примерно от 10-19 до 1019 .

Знак числа обычно кодируется двоичной цифрой, при этом код0 означает знак "+", код 1 -знак "-".

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

Двоично-десятичная система счисления получила большое распространение в современных ЭВМ ввиду легкости перевода в десятичную систему и обратно. Она используется там, где основное внимание уделяется не простоте технического построения машины, а удобству работы пользователя. В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами (табл. 4.1) и в таком виде записываются последовательно друг за другом.

Таблица 4.1. Таблица двоичных кодов десятичных и шестнадцатеричных цифр.

Цифра А В С D E F
Код

Пример 4.7. Десятичное число 9703 в двоично-десятичной системе выглядит так:

1001011100000011.

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

Для изображения цифр, больших 9, в шестнадцатеричной системе счисления применяются буквы А=10, В=11, С=12, D=13, Е=14, F=15.

Пример 4.8. Шестнадцатеричное число F17B в двоичной системе выглядит так:

1111000101111011.

Варианты представления информации в ПК

Вся информация (данные) представлена в виде двоичных кодов. Для удобства работы введены следующие термины, обозначающие совокупности двоичных разрядов (табл. 4.2). Эти термины обычно используются в качестве единиц измерения объемов информации, хранимой или обрабатываемой в ЭВМ.

Таблица 4.2. Двоичные совокупности

Количество двоичных разрядов в группе 8*1024 8*10242 8*10243 8*10244
Наименование единицы измерения Бит Байт Параграф Килобайт (Кбайт) Мегабайт (Мбайт) Гигабайт (Гбайт) Терабайт (Тбайт)

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

В ПК могут обрабатываться поля постоянной и переменной длины.

Поля постоянной длины:

слово - 2 байта двойное слово - 4 байта
полуслово - 1 байт расширенное слово - 8 байт
слово длиной 10 байт- 10 байт  

Числа с фиксированной запятой чаще всего имеют формат слова и полуслова, числа с плавающей запятой - формат двойного и расширенного слова.

Поля переменной длины могут иметь любой размер от 0 до 256 байт, но обязательно равный целому числу байтов.

Пример 4.9. Структурно запись числа -193(10)=-11000001(2) в разрядной сетке ПК выглядит следующим образом.

Число с фиксированной запятой формата слово со знаком:

  Знак числа Абсолютная величина числа
N разряда
Число

Число с плавающей запятой формата двойное слово:

  Знак числа Порядок Мантисса
N разряда ...
Число ...

Двоично-кодированные десятичные числа могут быть представлены в ПК полями переменной длины в так называемых упакованном и распакованном форматах.

В упакованном формате для каждой десятичной цифры отводится по 4 двоичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа (1100 - знак "+" и 1101 - знак "-").

Структура поля упакованного формата:

Цф Цф Цф Цф . . . Цф Знак

Здесь и далее: Цф - цифра,Знак - знак числа.

Упакованный формат используетсяобычно в ПК при выполнении операций сложения и вычитания двоично-десятичных чисел.

В распакованном формате для каждой десятичной цифры отводится по целому байту, при этом старшие полубайты (зона) каждого байта (кроме самого младшего) в ПК заполняются кодом 0011. (в соответствии с ASCII-кодом), а в младших (левых) полубайтах обычным образом кодируются десятичные цифры. Старший полубайт (зона) самого младшего (правого) байта используется для кодирования знака числа.

Структура поля распакованного формата:

Зона Цф Зона Цф . . . Зона Цф Знак Цф

Распакованный формат используется в ПК при вводе-выводе информации в ПК, а также при выполнении операций умножения и деления двоично-десятичных чисел.

Пример 4.10.Число-193(10)=-000110010011(2-10) в ПК будет представлено:

в упакованном формате

в распакованном формате