Алгоритм получения дополнительного шестнадцатиразрядного двоичного кода отрицательного числа
Для положительных чисел все три кода совпадают с двоичным представлением числа с помощью шестнадцати двоичных разрядов, при этом в пустые разряды записываются нули.
Вид кода
Целое число со знаком
–32768
–23
Прямой
1000 0000 0000 0000
0000 0000 0001 0111
0000 0000 0001 0010
Обратный
0111 1111 1111 1111
1111 1111 1110 1000
0000 0000 0001 0010
Дополнительный (внутреннее представление)
1000 0000 0000 0000
1111 1111 1110 1001
0000 0000 0001 0010
80 00
FF E9
00 12
1) Записать прямой код отрицательного числа в 16 двоичных разрядах. Для этого модуль целого отрицательного числа надо перевести в двоичную систему счисления и дополнить полученный результат слева нулями до 16 битов.
2) Записать обратный код отрицательного числа в 16 двоичных разрядах. Для этого значения всех разрядов прямого кода инвертировать (все нули заменить на единицы, а все единицы – на нули).
3) Записать дополнительный код отрицательного числа в 16 двоичных разрядах. Для этого к обратному коду, рассматриваемому как шестнадцатиразрядное неотрицательное двоичное число, прибавить единицу.
Вещественные числа занимают в памяти четыре байта (32 бита). Каждый из 32 битов имеет определенное назначение.
Вещественные числа хранятся и обрабатываются в компьютере в формате с плавающей запятой. Формат чисел с плавающей запятой базируется на экспоненциальной форме записи, в которой может быть представлено любое число.
В общем случае в формате с плавающей точкой число представляется в виде произведения двух сомножителей:
,
где m – мантисса числа;
P – основание системы счисления;
n – порядок, указывающий, на какое количество позиций и в каком направлении должна сместиться точка, отделяющая дробную часть в мантиссе.
Например, число 5,14 может быть записано в виде 0,514∙101 или 51,4∙10-1 и т. д.
Представим алгоритм получения тридцатидвухразрядного двоичного кода вещественного числа.
1. Переводим число в двоичную систему счисления.
Пр. Число –13,37510 в двоичной СС: 1101,0112.
2. Выполняем нормализацию числа.
Нормализованная запись отличного от нуля вещественного числа – это запись вида , где р – порядок, целое число (положительное, отрицательное или ноль); m – мантисса, причем справедливо соотношение: .
Нормализация состоит в смещении дробной запятой влево или вправо таким образом, чтобы в целой части числа всегда стояла единица, при этом изменяется значение числа. Компенсация этого изменения достигается умножением мантиссы на где р – количество разрядов, на которое была смещена запятая.
В нормализованной форме принято мантиссу записывать в двоичной системе счисления, а порядок и само число р – в десятичной.
Пр. В нормализованном виде экспоненциальная запись числа –13,37510 имеет вид: .
3. Выполняем приведение мантиссы.
Поскольку у нормализованной мантиссы целая часть всегда равна единице, то эту единицу подразумевают, но не записывают.
Пр. Приведенная мантисса равна 101011.
4. Вычисляем характеристику числа.
Характеристика числа равна порядку этого числа, увеличенному на 127. Полученное число перевести в двоичную систему счисления.
Пр. Характеристика заданного числа 3 + 127 = 130. В двоичной системе счисления характеристика имеет вид: 10000010.
5. Заполняем знаковый разряд числа.
В знаковый разряд для положительного числа записать ноль, для отрицательного числа – единицу.
Пр. Внутреннее двоичное представление вещественного числа –13,37510 имеет вид: 1 10000010 10101100000000000000000, а шестнадцатеричное – С1 56 00 00.