Арифметические основы цифровой техники - часть 4

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  1  2  3  4  5  ..

 

 

Арифметические основы цифровой техники - часть 4

 

 

Нормализованные 

двоичные 

числа 

с 

плавающей 

запятой 

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

 

(

)

max

max

max

2

2

2

1

2

5

,

0

1

П

П

m

П

N

 

где 

1

max

2

=

p

П

 – максимальное значение модуля порядка. 

Так,  при  р=7 

63

1

2

1

2

6

1

max

=

=

=

p

П

  и  диапазон  представления 

модулей нормализованных чисел 

.

10

10

2

,

10

10

2

2

5

,

0

19

3

,

0

63

63

max

19

3

,

0

64

64

63

min

=

=

=

N

N

 

Таким образом, диапазон чисел от 10

-19

 до 10

19

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

длине  разрядной  сетки  (т+р)  в  качестве  основания  системы  счисления 
выбирается  2

4

=16.  При  этом  число,  представляемое  в  разрядной  сетке, 

приобретает 

значение 

N=М

16

П

. 

Нормализованная 

мантисса 

шестнадцатеричного числа с плавающей запятой имеет значение, лежащее 
в диапазоне         1/16 

 

«M «

<

 1. Признаком нормализации такого числа 

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

-75

 до 10

75

Рассмотрим  погрешность  представления  чисел  с  плавающей  точкой. 

Абсолютная погрешность представления числа 

.

2

2

)

1

(

p

m

абс

=

ε

 

Предельная  относительная  погрешность 

  отношение  абсолютной 

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

.

2

4

2

5

,

0

2

2

2

)

1

(

min

m

p

p

m

p

абс

отн

М

=

=

=

ε

ε

 

Отсюда  видно,  что  точность  представления  чисел  определяется 

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

В  современных  ЭВМ  числа  с  плавающей  запятой  имеют  основание 

системы  счисления  16  и  представляются  в  двух  форматах:  коротком  (с 
числом  разрядов 32) и  длинном  (с  числом  разрядов 64). Длинный  формат 
предусматривает  увеличение  количества  разрядов,  отводимых  в  разрядной 
сетке под мантиссу, за счет чего повышается точность представления чисел. 

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

длины с применением двух видов формата: упакованного и распакованного. 

Каждая десятичная цифра представляется двоичной тетрадой и занимает в 
разрядной  сетке  четыре  разряда.  Четыре  разряда  отводятся  и  для 
представления  знака  (собственно  знак  представляется  младшим  разрядом 
тетрады,  в остальных разрядах  тетрады  может использоваться  постоянная 
комбинация 110). 

При использовании упакованного формата каждый байт (8 разрядов 

двоичного числа) содержит две десятичные цифры (рис. 2.4, а). 

 

7…4 3…0 

 

7…4  3…0  7…4 3…0 

Цифра  Цифра …  Цифра 

Цифра 

Цифра  Цифра 

байт 

 

байт 

байт 

а) 

7…4 3…0 

 

7…4  3…0  7…4 3…0 

Зона 

Цифра …  Зона 

Цифра 

Знак 

Цифра 

байт 

 

байт 

байт 

б) 

Рис. 2.4 

 

Например,  число –6378

10

  представляется  в  упакованном  формате  в 

следующем виде: 

0000  0110    0011  0111    1000  1101. 

байт  

 байт  

    байт 

В  распакованном  формате  каждый  байт  содержит  лишь  одну 

десятичную цифру в младшей тетраде; старшая тетрада, называемая зоной
заполняется стандартной комбинацией 1111 (рис. 2.4, б). Число       –6378

10

 

представляется в этом формате в следующем виде: 

1111  0110    1111  0011    1111  0111    1101  10000. 

байт  

 байт  

   байт  

  байт 

 

3.  ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ 

 

3.1.  Машинные коды чисел 
Главным  преимуществом  двоичной  арифметики  является  простота 

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

Пусть  суммируются  числа  х  и  у,  например,  меньшие  100, 

представленные  в  десятичном  алфавите.  Примем  х  = 93, у  = –24, тогда            
х+у  = 93–24 = 69. Поступим  теперь  иначе.  Заменим –24 суммой –24+100. 
Тогда х+у = 93+(–24+100) = 169. Чтобы получить нужный результат, следует 
это  число  уменьшить  на  100,  что  равносильно  отбрасыванию  полученной  в 
старшем  разряде  единицы.  Такой  способ  вычитания  называется  сложением 

уменьшаемого  с  точным  дополнением  вычитаемого  и  последующим 
отбрасыванием  единицы  в  старшем  разряде.  Точное  дополнение  при  этом 
получается  дополнением  цифр  всех  разрядов,  кроме  самого  младшего,  до 
основания h – 1, а младшего – до h

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

каждой цифры числа ее дополнением до старшей цифры системы счисления. 
Для  предыдущего  примера  поразрядное  дополнение числа 24 есть число 75 
(75 = –24+99). Тогда 93+75=168. Результат имеет лишнюю единицу в старшем 
разряде  и  нехватку  единицы  в  младшем.  Для  получения  правильного  ответа 
единицу  старшего  разряда  необходимо  изъять  и  добавить  ее  к  младшему 
разряду.  Эта  процедура  называется  циклическим  переносом.  Истинный 
результат в рассматриваемом примере получается следующим образом: 

 

 

 отбрасывается 

То  же  имеет  место  и  в  двоичной  арифметике  ЭВМ,  где  для 

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

В  дальнейшем  для  простоты  изложения  будем  оперировать  целыми 

(положительными и отрицательными) числами. 

 
Прямой код. Целое число х в прямом коде [х]

пр

 представляется в виде 

[ ]

[ ]

,

0

если

,

...

1

,

0

если

,

...

0

2

1

пр

2

1

пр

¢

=

=

х

x

х

x

n

n

ε

ε

ε

ε

ε

ε

 

где 

ε

 – двоичная цифра 0 или 1. 

Пример 3.1. 
Пусть х = +10110, тогда [х]

пр

= 010110; для х = –11011, [х]

пр

= 111011. 

 
Обратный  код.

  Если  двоичное  число  х=

ε

1

ε

2

ε

n

  является 

положительным (х

>

0), то обратный код этого числа совпадает с прямым. 

Если х

<

0, то обратный код получают следующим образом. В знаковом 

разряде  записывается  единица,  а  все  остальные  разряды  заменяются 
дополнениями до единицы. Следовательно, 

[ ]

,

...

1

*

*

2

*

1

n

обр

x

ε

ε

ε

=

 

где 

1

*

1

=

ε

, если 

ε

i

=0, и 

0

*

=

i

ε

, если 

ε

1

=1. 

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

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

Пример 3.2. 
Пусть х = –101, тогда [х]

обр

=1010. 

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

  Дополнительный  код  числа  [х]

доп

  совпадает  с 

самим  числом,  если  х

0.  Если  х

<

0,  то  дополнительный  код  получают  по 

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

Пример 3.3. 
Пусть х = –11010, тогда [х]

доп 

=100101+00001=100110. 

 
3.2.  Сложение  и  вычитание  чисел  в  ЭВМ  с  использованием 

кодов 

Благодаря  введению  кодов  операция  чисел  заменяется  сложением 

обратных или дополнительных кодов. 

Рассмотрим примеры сложения и вычитания двоичных чисел х и у и их 

десятичных  эквивалентов  в  различных  кодах  и  с  помощью  этих  примеров 
установим  соответствующие  правила.  Предположим,  что  технические 
возможности  ЭВМ  не  позволяют  оперировать  числами,  большими 63 (т.  е.        
n = 6). Если окажется, что х+у > 63, то такое событие называют переполнением 
разрядной сетки. 

Пример 3.4. 
Даны  х = 22, у = 34, х+у = 56. 

 

 
Так  как  числа  положительные,  то  обратный  и  дополнительный  коды 

одинаковы, знаковый разряд равен нулю. 

Отрицательное число у заменяем обратным или дополнительным кодом. 
Пример 3.5. 
Дано х = 54, у = –23, х+у = 31. 

 

 

 

 

 

 

 

 

 

 

содержание   ..  1  2  3  4  5  ..