Дробные числа.
Представление двоичных чисел
Беззнаковые числа
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