Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
действия с кодами двоич чисел.docx
Скачиваний:
0
Добавлен:
30.11.2019
Размер:
77.44 Кб
Скачать

КОДИРОВАНИЕ ЧИСЕЛ

Формы и форматы представления данных в компьютере.

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

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

Машинное полуслово для ПК

старший разряд

6

5

4

3

2

1

младший разряд

Естественная форма.

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

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

Во всех форматах знак числа занимает место перед старшим разрядом и кодируется.

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

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

знак

214

213

212

211

210

29

28

27

26

25

24

23

22

21

20

0 - знак "плюс"

1 - знак "минус"

Знак от числа отделяется воображаемой точкой.

Оценим диапазон представления чисел в коротком формате - 2 байта.

|A|min = 1

|A|max = 215-1 = 32767

Нормальная форма.

Любое число в нормальной форме представляется в виде:

A =  mAq PA

mA - мантисса числа A

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

PA - порядок

Мантисса числа должна удовлетворять условию: 1/q <= |m|<=1.

55,25 - естественная форма

5525*10-2 - степенная форма

0,005525*10- степенная форма

0,5525*102 - нормальная форма

Как видно из записи числа, мантисса и порядок имеют знаки, поэтому в формате следует отвести два разряда под знаки, что уменьшит диапазон представления чисел. Поэтому в компьютерах не используют короткую форму записи чисел (2 байта), а пользуются представлением в 4 и 8-байтных форматах.

Обычно 7 разрядов используется под порядок и его знак. Числовая ось порядков находится в диапазоне -64<=P<=63. Для исключения отрицательных порядков используют смещение оси в область положительных значений, т.е. +64. Такой смещенный порядок называется характеристикой Px = P + 4016 (шестнадцатеричное представление предпочтительнее, т.к. упрощает действия над такими числами)

Таким образом Px=40 - это P = 0, а диапазон 0 <= Px  <=127=7F.

Пример записи числа в нормальной форме.

A = 7D08,816

B = -7D08,816

mA = 0,7D088 PxA = 40+4 = 44

mB = -0,7D088 PxB = 40+4 = 44

A = 0 100 0100 0111 1101 0000 1000 1000 0000 A = 44D0880 > 0

B = 1 100 0100 0111 1101 0000 1000 1000 0000 B = C4D0880 < 0

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

  1. Арифметическое сложение.

  2. Сдвиг кода числа вправо и влево.

Машинные коды чисел целых чисел.

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

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

Правила образования машинных кодов.

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

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

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

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

Рассмотрим образование кодов в двоичной системе счисления чисел ±34.

А = 3410 = 1000102

В = -3410 = -1000102

Для простоты примем, что задана разрядная сетка в один байт (8 двоичных разрядов).

34

-34

ПК

00100010

10100010

ОК

11011101

ДК

11011110

Вспомним таблицу сложения для двоичных чисел:

+

0

1

0

0

1

1

1

10

Обратите внимание, что при сложении 1+1 образуется единица переноса в старший разряд. При сложении могут возникнуть и другие ситуации, например:

  • 1+1+1 - единица остается в текущем разряде и образуется единица переноса;

  • 1+1+1+1 - ноль в текущем, две единицы в переносе;

  • 1+1+1+1+1 - единица в текущем, две единицы в переносе;

  • 1+1+...+1 - (N-количество слагаемых) если N-четное, то в текущем разряде ноль, в переносе N/2 единиц, если N-нечетное, то единица в текущем, целая часть от N/2 единиц в переносе.

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

Рассмотрим это на примере с числом -34.

А = -3410 = - 1000102

Прямой код положительного числа - 00100010

Константа для дополнительного кода - 100000000