Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Представление_и_обработка_чисел_в_компьютере

.pdf
Скачиваний:
22
Добавлен:
29.03.2016
Размер:
626.04 Кб
Скачать

Представление и обработка чисел в компьютере

Системы счисления и коды, применяемые в вычислительной технике

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

1.числа записываются в двоичной системе счисления

2.для записи и обработки чисел отводится конечное количество разрядов Замечания относительно понятия ЧИСЛО. Оно имеет ЗНАЧЕНИЕ и ФОРМУ

ПРЕСТАВЛЕНИЯ. Последняя определяет порядок записи числа с помощью предназначенных ля этого знаков. При этом ЗНАЧЕНИЕ является инвариантом, то есть не зависит от способа его представления. То есть отсутствует взаимно однозначное соответствие между представлением числа и его значением, всякое значение числа может быть записано поразному. Поэтому вопроскаковы формы представления чисел. и можно ли переходить от одной к другой.

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

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

Существует два известных типа систем счисления: непозиционные и позиционные.

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

Непозиционной системой счисления является самая простая система с одним символом (палочкой). Для изображения какого-либо числа в этой системе надо записать количество палочек, равное данному числу. Например, запись числа 12 в такой системе счисления будет иметь вид: 111111111111, где каждая «палочка» обозначена символом 1. Эта система неэффективна, так как форма записи очень громоздка.

Примером непозиционных с.с. может служить римская или латинская с.с. Она включает

всебя следующие цифровые обозначения: 1 – I; 2-II; 3-III; 4-IV; 5-V; …; 10-X;…; 50-L; 100-C; 1000-M и т.д.

Пример.

Записать числа 114; 155; 1999 римскими цифрами:

114 — CXIV; 155 — CLV; 1999 — MCMXCIX.

Ввиду сложности не нашла своего применения в математике.

Впозиционной с.с. с основанием p числа представляются в виде последовательности цифровых знаков:

N=(anan-1an-2 a2a1 a0, a-1 a-2 a-3)p

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

Взависимости от основания системы счисления различают:

десятичную с.с. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

двоичную с.с. (0, 1);

восьмеричную (0, 1, 2, 3, 4, 5, 6, 7);

шестнадцатеричную (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) .

Вэтих системах значение цифры определяется местом (позицией), где она стоит в числе

Пример.

 

 

1=6*103+3*102+2*10+1

6321(10) =6

3

2

6000 300 20 1

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

части числа от дробной. Каждая позиция справа от десятичной точки имеет свой вес (10-1, 10-2 и

т.д).

В любой позиционной с.с. число может быть записано через полином (многочлен):

ат-1Р т-1т-гР m-1+...+а1Р -1+а0Р 0+а-1Р -1+а-2Р -2+...+a-sP -s, (1)

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

положительные значения индексов — для целой части числа разрядов);

отрицательные значения — для дробной (s разрядов).

Пример.

237,71(10) = 2*102+3*101+7*100+7*10-1+1*10-2

Двоичная система счисления имеет основание Р = 2 и использует для представления информации всего две цифры: 0 и 1.

Существуют правила перевода чисел из одной системы счисления в другую, основанные, в том числе и на соотношении (1).

Пример

101110,101(2) =

1•25+0•24+1•23+1•22+1•21+0•20+1•2-1+0•2-2+1•2-3= 46,625(10),

т.е. двоичное число 101110,101 равно десятичному числу 46,625. При записи числа в десятичной системе счисления каждая позиция занята десятичной цифрой. Аналогично при записи двоичного числа каждая позиция занята двоичной цифрой, называемой битом.

Часто используется термин наименьший значащий бит (крайний справа) и наибольший значащий бит (крайний слева).

Преобразование двоичных чисел в десятичные.

При работе ЭВМ часто бывает необходимо заменить двоичные числа их десятичными эквивалентами.

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

Пример 11.

Преобразование вещественного двоичного числа : 101.011 в десятичное:

1 0 1. 0 1 1 = 1*22 +0* 21+1* 20+0* 2-1+ 1*2-2+1*2-3 =5.375(10)

Перевод из одной системы счисления в другую.

1.Для целой части используется правило последовательного деления

2.Для дробной части правило последовательного умножения.

Правило перевода целой части — правило последовательного деления:

Для перевода целой части числа из С.С. с основанием p в С.С. с основанием q

необходимо разделить целую часть заданного числа и получаемое частное на основание системы в которую необходимо преобразовать данное число, представленное в С.С. p, до тех пор пока частное не станет меньше q.

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

Двоичная система счисления (В) Пример 12.

преобразовать десятичное число 134 в двоичное:

Частичные

134

 

67

33

16

8

4

2

1

Последнее

частные

 

 

 

 

 

 

 

 

 

частное

Остатки

0

1

 

1

0

0

0

0

1

 

Получили число10000110 Правило перевода дробной части — правило последовательного умножения:

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

2

Пример 13.

преобразовать десятичную дробь 0.375 в двоичную

0.375 * 2 = 0.75

0

Старший Значащий Разряд(СЗР)

0.75 * 2 =

1.5

1

 

0.5 *2 =

1

1

Младший ЗР (МЗР)

Результат

0.011

Выполнение арифметических действий в двоичной системе счисления

 

 

 

Таблица

 

в двоичной системе счисления

Сложения

 

Умножения

0

+ 0

= 0

 

0 х 0 = 0

0

+ 1

= 1

 

0 х 1 = 0

1

+ 0

= 1

 

1 х 0 = 0

1

+ 1

= 10

 

1 х 1 = 1

Восьмеричная система счисления (О)

Восьмеричная система счисления имеет основание 8. В ней используются следующие символы: 0, 1, 2, 3, 4, 5, 6, 7. Восьмеричная система применяется для удобства записи чисел. Поскольку 23 = 8, то каждый восьмеричный символ (0 до 7) может быть представлен 3-х битовым числом (000 …..111)

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

Пример.

 

 

 

 

 

 

 

 

Представить восьмеричным эквивалентом число:

10101011111101 ( B )=>25375 (О )

 

Двоичный

код,

010

101

 

011

111

101

 

 

разбитый на триады

добавлен 0

 

 

 

 

 

 

 

Восьмеричный код

2

5

 

3

7

5

 

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

Пример.

Представить двоичным эквивалентом число: 375,75 ( O )=>11111101,1111 ( B )

Восьмеричный

3

7

5,

7

5

код

 

 

 

 

 

Двоичный

011

111

101,

111

101

Таблица сложения в восьмеричной системе счисления

+

0

1

2

3

4

5

6

7

 

 

 

 

 

 

 

 

 

0

0

1

2

3

4

5

6

7

 

 

 

 

 

 

 

 

 

1

1

2

3

4

5

6

7

10

 

 

 

 

 

 

 

 

 

2

2

3

4

5

6

7

10

11

 

 

 

 

 

 

 

 

 

3

3

4

5

6

7

10

11

12

 

 

 

 

 

 

 

 

 

4

4

5

6

7

10

11

12

13

 

 

 

 

 

 

 

 

 

5

5

6

7

10

11

12

13

14

 

 

 

 

 

 

 

 

 

6

6

7

10

11

12

13

14

15

 

 

 

 

 

 

 

 

 

7

7

10

11

12

13

14

15

16

 

 

 

 

 

 

 

 

 

Таблица умножения для восьмеричной системы счисления

3

 

0

1

2

3

4

5

6

7

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

1

0

1

2

3

4

5

6

7

 

 

 

 

 

 

 

 

 

2

0

2

4

6

10

12

14

16

 

 

 

 

 

 

 

 

 

3

0

3

6

11

14

17

22

25

 

 

 

 

 

 

 

 

 

4

0

4

10

14

20

24

30

34

 

 

 

 

 

 

 

 

 

5

0

5

12

17

24

31

36

43

 

 

 

 

 

 

 

 

 

6

0

6

14

22

30

36

44

52

 

 

 

 

 

 

 

 

 

7

0

7

16

25

34

43

52

61

 

 

 

 

 

 

 

 

 

Шестнадцатиричная система счисления (H)

Используются символы: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

(А = 10, В = 11, С = 12, D = 13, Е = 14, F = 15)

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

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

Пример.

Представить шестнадцатеричным эквивалентом:

10101011111101 B => 25375 O => 2AFD H

Двоичный код, разбитый на тетрады

0010

1010

1111

1101

 

 

шестнадцатеричный код

2

А

F

D

 

 

11000111.10101 B=>307.52 O => C7.A8 H

 

 

 

 

 

 

 

Двоичный код, разбитый на тетрады

 

1100

 

0111

 

1010

 

1000

добавлены нули в конце

 

 

 

 

 

 

 

 

 

дробной части

 

шестнадцатеричный код

 

С

 

7

 

A

 

8

 

 

 

 

 

Целая часть

 

Дробная часть

Следует помнить, что 16-ные и 8-ные числа - это только способ представления двоичных чисел, которыми фактически оперирует микропроцессор.

Простота соотношения между 16 и 2 формами представления чисел – причина значительно большей распространенности 16 с.с.

ИНФОРМАЦИОННО–ЛОГИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ЭВМ Формы представления чисел

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

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

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

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

0,25; -10,44; +0,9781.

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

Пример: Диапазон чисел (N) в системе счисления с основанием Р при наличии m

разрядов в целой части и S разрядов в дробной (без учета знака числа) будет:

P-S ≤ N ≤ Рm - Р-S

При р=2, m=10 и S=6 0,015 ≤ N ≤ 1024.

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

4

Всовременных ЭВМ естественная форма используется только для целых чисел.

Пример.

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

имеют вид: +00721,35500; +00000,00328; -0301,20260.

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

мантиссы должна быть меньше 1, а порядок — целым числом. В общем виде число в форме с плавающей запятой может быть представлено так: Х =±М *p±К (Число Х называется нормализованным, если оно представлено в таком виде)

Главное достоинство: автоматическое масштабирование числа на каждом этапе обработки. Это универсальная форма записи всех чисел, кроме целых (Integer, Word, Byte).

М – при неравенстве 0 мантисса равна: 0.1≤ |М| < 1( первая цифра мантиссы после запятой - ≠0) , К-порядок, целое положительно число, p – основание системы счисления.

Пример: -123410=-0, 1234*104;

0,003=0,3*10-2

При нормализации происходит разделение числа на 4 составляющих: знак числа, мантисса, знак порядка, порядок.

Для произвольной системы счисления.

Хр =± Мр* р±К , Р-1 ≤ М< 1 r, где Mмантисса числа, К — порядок числа (К— целое число);

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

Например: для р=2, Х= -101,012 = -0,10101*211(2) , -0,10101(2) – мантисса, 11(2) –порядок, 2 – основание системы счисления

Пример 20.

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

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

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

Знак числа обычно кодируется двоичной цифрой, при этом

код 0 означает знак "+",

код 1 — знак "-".

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

В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами и в таком виде записываются последовательно друг за другом.

Пример

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

1001 0111 0000 0011

Последовательность нескольких битов или байтов часто называют полем данных (Информатика: учебник / под ред. Н.В. Макаровой. — 3-е перераб. изд. — М.: Финансы и статистика, 2006.).

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

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

5

слово — 2 байта

двойное слово — 4 байта

полуслово — 1 байт

расширенное слово — 8 байт

слово длиной 10 байт — 10 байт

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

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

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

1.целые положительные числа (без знака)

2.целые со знаком

3.вещественные нормализованные числа.

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

Память в компьютере имеет байтовую структуру. Целые без знака обычно занимают

один, или два байта (это комбинация связанных соседних ячеек, обрабатываемая совместно, называется машинным словом). В однобайтовом формате они могут принимать значения в диапазоне от 0 до 255, в двухбайтовом от 0 до 65535. Здесь попытка представить в байтовом формате число 258 будет интерпретироваться как ошибка. В машинном слове целые числа без знака представляются в своем двоичном виде.

Пример:

7210=10010002

в байтовом формате:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

6

 

 

 

 

5

 

4

 

 

3

 

 

2

 

 

1

 

 

0

 

 

0

 

1

 

 

 

 

0

 

 

 

0

 

 

1

 

 

0

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в двухбайтовом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

1

0

 

0

1

 

0

0

 

0

Над целыми числами определены операции сложения (по умножения).

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

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

Прямой код

При кодировании прямым n-разрядным двоичным кодом один разряд (как правило, самый старший) отводится для знака числа. Остальные n-1 разрядов - для значащих цифр. Значение знакового разряда равно 0 для положительных чисел, 1 - для отрицательных.

Пример: 1 = 0000 0001,-1 = 1000 0001.

Для прямого кода справедливо следующее соотношение:

n-2

А10=(-1)а (зн)∑ ai 2i,

i =0

6

где n-разрядность кода, а (зн) - значение знакового разряда. Например: если разрядность кода равна 4, то

1101 = (-1)1[1*20+0*21+1*22]=-5

Обратный код

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

Пример: число: -1, модуль 00000001, обратный код 11111110 Для обратного кода справедливо следующее соотношение:

n 2

A10 aзн ( 2n 1 1) ai 2i

i 0

n-разрядность машинного слова, aзн =0 для положительных чисел, aзн =1 для отрицательных чисел.

1010 = 1*(-23+1)+[0x20+1x21+0x22]= -7+2=-5

Дополнительный код

Дополнительный код положительного числа совпадает с прямым, а отрицательного можно получить двумя способами:

I вариант.

610=01102

Переписать исходную последовательность битов числа справа

-610=10102

налево до первой единицы, включая ее. Остальные биты инвертировать.

 

II вариант.

-610=10012+1

Дополнительный код = логическое дополнение (все биты

=10102

инвертированы)+1

 

Для дополнительного кода справедливо следующее соотношение:

где n-разрядность машинного слова, aзн =0 для положительных чисел, aзн =1 для отрицательных чисел.

 

 

 

 

 

 

n 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A10 aзн ( 2n 1 ) ai 2i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 0

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

 

 

 

 

 

 

 

 

 

 

Знак числа

 

 

 

 

 

 

 

величина числа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N разряда

15

 

14

13

12

11

 

10

 

9

8

7

6

 

5

4

3

2

1

0

Число в пр. коде

1

 

0

0

0

0

 

0

 

0

0

1

1

 

0

0

0

0

0

1

Обр.код

1

 

1

1

1

1

 

1

 

1

1

0

0

 

1

1

1

1

1

0

Доп. код

1

 

1

1

1

1

 

1

 

1

1

0

0

 

1

1

1

1

1

1

Смещенный код (с избытком)

Выбирается длина разрядной сетки — n и записываются последовательно все возможные кодовые комбинации в обычной двоичной системе счисления. Затем кодовая

7

комбинация с единицей в старшем разряде, имеющая значение 2n-1, выбирается для представления числа 0. Все последующие комбинации с единицей в старшем разряде будут представлять числа 1, 2, 3,... соответственно, а предыдущие комбинации в обратном порядке — числа -1,-2, -3,... .

Номер кодовой комбинации

Код с избытком 4

 

Десятичн. значение

 

 

 

 

 

 

 

7

111

 

3

 

 

 

 

 

 

 

 

6

110

 

2

 

 

 

 

 

 

 

 

5

101

 

1

 

 

 

 

 

 

 

 

4

 

100

 

 

0

 

 

 

 

 

 

 

 

 

 

3

011

 

-1

 

 

 

 

 

 

2

010

 

-2

 

 

 

 

 

 

1

001

 

-3

 

 

 

 

 

 

0

000

 

-4

 

 

 

 

 

 

 

 

Вещественные числа

Строгие отношения между вещественными числами превращаются в нестрогие для их компьютерных представителей

Результаты вычислений будут заведомо содержать погрешности Формат представления вещественных чисел

n-1

 

n-2

 

m

m-1

 

 

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Знак

 

 

Смещенный порядок

 

 

Мантисса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мантиссы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вещественные числа в компьютерах представляются в нормализованном виде, как правило, в трех форматах – одинарном (32), двойном (64) и расширенном (80 разрядов).

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

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

Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от ноля числа до наибольшего числа, представимого в машине при заданном формате.

Нормализованное число одинарной точности, представленное в формате с плавающей запятой, записывается в память следующим образом: знак числа (знак мантиссы) - в бите 15 первого слова (0 - для положительных и 1 - для отрицательных чисел); порядок размещается в битах 7 -14 первого слова, а мантисса занимает остальные 23 бита в двух словах.

Упрощенное представление : 31 разрядзнак мантиссы, с 23-30 разряда смещенный порядок и с 22 по 0 разряды – мантисса.

Пример

Нормализуем число для выделения мантиссы и порядка

-11000001 B= – 1,1000001(2)* 2(10)^7(10) .

8

Здесь мантисса (M): –1,1000001; порядок P :–111(2); Смещенный порядок (Смp) = 7 + 127(10) = =134(10) (Смещенный порядок = P+ 127; 127 – смещение для чисел с одинарной точностью)

 

Знак числа

Смещенный порядок

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Смp =7(10)+ 127(10)

 

 

Мантисса (M)– 0,11000001

 

 

 

=134(10) =10000110(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

31

30

29

28

27

26

 

25

24

23

22

21

20

19

18

 

17

16

15

1

0

разряда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Число

1

1

0

0

0

0

 

1

1

0

1

0

0

0

0

 

0

1

0

 

0

0

 

 

С

 

 

 

 

8

 

 

С

 

 

 

1

 

 

 

 

 

С8С10000 H – шестнадцатеричная форма внутреннего представления числа в формате с плавающей точкой (запятой) с одинарной точностью.

Арифметические операции с вещественными числами.

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

1. Сложение. Пусть имеется два числа X1=M1*10k(1) и X2=M2*10k(2). Для их сложения:

а. Δk=| k1-k2 |

b. если k1 > k2 , то M=M1 + M2 10 -Δk k=k1 ,

с. если 10-1 < =М< 1, то вывод результата в виде M *10k иначе предварительная нормализация.

Пример:

Х1=0.87654 * 101, Х2=0.94567*102. Пусть под запись мантиссы отводится 5 разрядов. а. Δk= 1, k1<k2 ,следовательно, k=k2=2 (уравняли порядки)

b. мантиссу числа X1 сдвигаем на один разряд влево (пропадет 4)

с. новая мантисса равна 0,94567+0,08765=1,03332

а. мантисса вышла за допустимый интервал (она >1). Нормализуя, получим мантиссу 0,10333 (теряем 2) и порядок увеличиваем на 1. В итоге получаем Х=0,10333*103 , а точный результат равен 103,3324.

2.Вычитание сводится к сложению с дополнительным кодом.

3.Умножение производится по правилу - мантиссы перемножаются, а порядки складываются. Если нужно, то полученное число нормализуется.

4.Деление производится по правилу - мантиссы делятся (делимое на делитель), а порядки вычитаются (порядок делителя из порядка делимого). Если нужно, то полученное число нормализуется.

Для целых со знаком определены операции

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

+появился дополнительный бит слева, то он будет отсечен. Именно поэтому

0111+1011=(1) 0010.

2.Вычитание. Оно как таковое здесь не присутствует, т.к. сводиться к сложению с дополнительным кодом: 710-510=710+(-510)=01112+10112=0010=210

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

Проблема переполнения:

Она вытекает из ограничения на размер чисел, представимым данным количеством битов. [Например, в 3-битовом представлении в двоичном дополнительном коде нет

9

записи для числа 4 => сложим 2+2 и не получим правильного ответа]. Такая ошибка называется переполнением.

Проверить есть ли она, или нет, можно посмотрев на знаковый разряд результата. Ошибка есть, если

·складываются два положительных числа, а результат «- ».

·складываются два отрицательных числа, а результат «+».

Это нужно знать, и при программировании об этом помнить. Иначе может быть серьезная ошибка.

История: 19.09.1989 компьютерная система в госпитале США заметила ошибку после долгих лет надежной работы. Из-за того, что это был 32768-ым днем после 1.01.1900 (раньше был 16-битовый код, то есть максимум 32768)

3.Операция умножения. При ней число из дополнительного кода переводиться в прямой, перемножаются всегда положительные числа, а знаковый бит будет содержать 0, если знаки чисел одинаковы и 1 в противном случае. Умножение производится по правилу – мантиссы перемножаются, а порядки складываются. Если нужно, то полученное число нормализуется.

4.Деление. Над множеством целых чисел со знаком эта операция не определена. Но допустима операция целочисленного деления. Перевод в дополнительный код происходит автоматически при вводе чисел, в таком виде они хранятся в ОЗУ и участвуют в арифметических операциях. Деление производится по правилу – мантиссы делятся (делимое на делитель), а порядки вычитаются (порядок делителя из порядка делимого). Если нужно, то полученное число нормализуется

Двоично-десятичные кодированные числа

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

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

(1100 — знак "+" и 1101 — знак "-").

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

Цф

Цф

...

 

Цф

Знак

 

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

 

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

сложения и вычитания двоично-десятичных чисел.

Символ 0 код

ASCII 48 (10) – 0011 0000 (2)

 

1

 

49

0011 0001 …

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

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

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

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

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

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

 

0001

 

1001

 

0011

 

1101

 

 

 

 

1

 

9

 

3

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

0011

0001

0011

 

1001

1101

0011

 

 

 

1

 

 

 

9

 

-

3

10