1.1. Нормализация чисел
Любое число может быть записано с плавающей запятой:
A = M · 10Р,
где М мантисса, Р порядок (характеристика) числа.
Например: число 127.510 можно записать как 0.001275·105 или 0.1275·103 и т.д.
Положение запятой (точки) в мантиссе М определяется величиной порядка Р.
Число с плавающей запятой (точкой) А = М·10Р, где 0.1 [M] < 1, называется нормализованным числом.
Например:
110.11012 = 0.11011012 ·1011 ;
(M = 0.11011012 P=112).
0.01012 = 0.1012 ·10 1
(M= 0.1012 P= 12).
Всякое десятичное число, прежде чем оно попадет в память ЭВМ пре-образуется по схеме:
N10 N8 N2 = M2 · 10Р .
В полученном нормализованном двоичном числе мантисса с ее знаком заменяется кодом мантиссы с ее знаком, а порядок числа с его знаком кодом порядка с его знаком. При фиксированной запятой (точке) место запятой, отделяющей целую часть от дробной, остается постоянным для всех чисел.
1.2. Арифметика в дополнительном коде.
Прямой код двоичного числа (это либо мантисса, либо порядок) обра-зуется из двоичного числа путем добавления в старший разряд (крайний слева) знака числа: 0 положительное, 1 отрицательное число.
Этот специально выделенный разряд называется знаковым разрядом, остальные разрядами модуля числа.
Например:
А = 0.1011012, В = 0.11011012, С= 11011112;
А пр.= 11011012, В пр.= 011011012, С пр.= 111011112.
Обратный и дополнительный коды отличаются от прямого способом представления отрицательных чисел и совпадают с прямым, если числа положительные.
Обратный код отрицательного числа образуется так: во всех разрядах, кроме знакового, нули заменить на единицы, а единицы на нули.
Например:
А пр.= [1]10101; A обр.= [1]01010;
B пр.= [0]1101; В обр.= [0]1101.
Дополнительный код отрицательного двоичного числа образуется путем увеличения на единицу обратного кода этого двоичного числа.
Например:
А пр.= [1]10010; A обр.= [1]01101; A доп.= [1]01110;
B пр.= В обр.= В доп. = [0]1011.
Вычитание двоичных чисел можно заменить сложением в дополнитель-ном коде.
Например:
(-2) 11111110 (+7) 00000111 (+3) 00000011
+ + + + + +
(-5) 11111011 (-3) 11111101 (-8) 11111000
(-7) 11111001 (+4) 10000100 (-5) 11111011
пренебречь пренебречь
переполнением переполнением
2. Задание для выполнения
1. Произвести операции сложения, вычитания и умножения с двумя восьмиразрядными двоичными числами, заданными преподавателем. Результаты проверить с помощью программы “СONVERT.EXE”.
2. Проделать аналогичные операции с восьмеричными и шестнадцате-ричными двух четырехразрядными числами (числа задает преподаватель).
3. Произвести операции вычитания с заданными двоичными числами в дополнительном коде.
4. Составить отчет по проделанной работе.