Дробные числа.

Представление двоичных чисел

Беззнаковые числа

Max(2)
Min(2)

Xmax=28-1=255

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

Прямой код:

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

Знак + значение

27-1=127

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

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

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

Прямой и обратный коды
Число Прямой код Обратный код
-1
-5
-127

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

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

Число Прямой код Дополнительный код
-1
-5

Смещенный код:

В этом коде все ячейки, включая знаковый бит, используется для записи беззнакового кода. Коды положительных и отрицательных чисел образуются по единой формуле Хсмещ.=2n-1+х.

Число Смещенный код
-1
-5

N=8, 2n-1=27=128

Xcмещ.=128+Х

В смещенном коде все положительные числа и ноль имеют единицу в левом бите, а отрицательные ноль. Числа от -128 до 127 выражаются числом от 0 до 255, и их можно записывать в положительном коде.

Числа с фиксированной точкой.

1. Числа по абсолютной величине меньше 1. |x|<1

Они имеют вид ±0. B-1 b-2… bi-двоичные числа.

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

Ϛ b-1 b-2 …, где Ϛ=0, если x>0 и Ϛ=1, если x<02

2. Число смешанное |x|<2

±b0. b-1 b-2…

Точку можно опустить, т.к. она всегда стоит после левой цифры, а в память записывается число Ϛb0b-1 b-2…

Частный случай, если записываются целые числа, то у них точка ставится после крайней правой цифры.

Числа с плавающей точкой.

X=Mx*SPx, где Mx – мантисса Х, Рх – целое со знаком, S- основание СС

Примеры:

X=16,125 10

X1=0.16125*102

X2=0.016125*103

X3=1612.5*10-2

X=16.12510=10000.001*20

X1=1.0000001*2-100

X2=0.10000001*2-101

Количество вариантов кодирования числа не ограничено. Однако, не все годятся для записи в памяти. Мантисса записывается как число с ФТ, т.к. ее сокращенный код и, как правило, мантисса по модулю меньше единицы.(|Mx|<1)

Порядок числа – это целое число со знаком. Логично было бы разбить ячейку на 4 части. Однако, порядок числа записывается в коде со смещением, поэтому нет позиции для знака. Мантисса записывается в память в прямом коде. Знаковая позиция имеет самостоятельное значение.

Формат записи:

Px
Mx
Знак мантиссы

 

 


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

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

Дано: х=11.0112 и у=0.001012

|M|<1 : х=11.011=011011*2010 Рх=010

Мх=11011

У=0.00101=0.101*2-010

My=101, Py=-010

|M|<2: Xн=1.1011*2001, Ун=1.01*2-011

Мх=1011, Рх=011; Му=01, Ру=-011