- •Формы представления чисел в эвм
- •Представление чисел в форме с фиксированной точкой
- •Представление чисел с плавающей точкой в общем случае любое число, представленное с плавающей точкой, может быть формализовано следующим образом
- •Арифметические операции с числами
- •В итоге получается
- •Кодирование алфавитно – цифровой информации
-
Арифметические операции с числами
Правила выполнения арифметических операций над двоичными числами задаются таблицами двоичного сложения, вычитания, умножения.
Сложение Вычитание Умножение
0 + 0 = 0 0 – 0 = 0 0 * 0 = 0
0 + 1 = 1 1 – 0 = 1 0 * 1 = 0
1 + 0 = 1 1 – 1 = 0 1 * 0 = 0
1 + 1 = 0 с переводом 0 – 1 = 1 с заимствовани 1 * 1 = 1
единицы в старший разряд ем единицы из старшего
разряда
Правила арифметики во всех позиционных системах одинаковы. Поэтому сложение двух чисел в двоичной системе можно выполнять в столбик ( как с десятичными числами ), начиная с младшего разряда с переносом единицы в старший разряд ( в случае переполнения младшего разряда ). Пример сложения двух чисел
перенос 1 1 1
1 0 1 1 0 1.0 1 1
+
1 0 1 1 0. 1 0 0
1 0 0 0 0 1 1. 1 1 1
Вычитание производится аналогично сложению. В этом случае, если от нуля вычитается единица, то из соседнего старшего разряда занимается единица и представляется как две единицы в младшем разряде. Например,
1 1 0 1 1.1 0
-
1 1 0 1.0 1
1 1 1 0.0 1
Умножение производится аналогично умножению в столбик десятичных чисел. Пример умножения двоичных чисел 1011.1 * 101.01.
1 0 1 1.1
*
1 0 1.0 1
1 0 1 1 1
0 0 0 0 0
1 0 1 1 1
0 0 0 0 0
1 0 1 1 1
1 1 1 1 0 0. 0 1 1
Здесь положение точки определяется также как и при умножении десятичных чисел.
Деление чисел в двоичной системе производится аналогично делению чисел в десятичной системе. Чтобы избавиться от точки, необходимо ее перенести на одинаковое количество разрядов в делимом и делителе с записью недостающего нуля в делимом. Например, необходимо поделить число 1100.011 на 10.010.
1100011 10010
10010 101.1
11011
10010
10010
10010
00000
Как видно из примеров, все операции с двоичными числами сводятся в конечном итоге к сложению и вычитанию. Если сложение чисел с одинаковыми знаками не вызывает затруднения, то операция сложения чисел с различными знаками (вычитание) требует дополнительных действий. В этом случае требуется определять большее по модулю число, затем определять его знак, чтобы потом его использовать как знак результата, вычитать из числа с большим модулем число с меньшим модулем. Это упрощается, если использовать методы, которые сводятся к представлению чисел в виде специальных кодов. Различают три вида кодов
-
прямой,
-
обратный,
-
дополнительный.
С помощью этих кодов упрощается операция алгебраического сложения (вычитания). Она сводится к операции простого сложения, что не вызывает затруднения. Применение кодов упрощает определение знака результата, и признака переполнения разрядной сетки.
Для обозначения знака числа в каждом из перечисленных кодов выделяется специальный знаковый разряд. Он всегда представляется первым слева от цифровых разрядов в разрядной сетке и играет роль старшего разряда числа. Если число положительное, то в этом (знаковом) разряде записывается нуль, если число отрицательное, то в нем записывается единица.
П р я м о й к о д
Прямой код двоичного числа содержит цифровые разряды, слева от которых записывается знаковый разряд, который выполняет не роль з н а к а, а роль значущей цифры числа. Например, целое положительное двоичное число х=+11010 в прямом коде будет иметь вид = 011010, а отрицательное число у=- 10011 будет иметь вид = 110011. В этих кодах знаковые разряды выполняют роль значащих цифр.
О б р а т н ы й к о д
Обратный код образуется из прямого кода путем замены единиц и нулей в цифровых разрядах на их противоположные значения, то есть единицы заменяются нулями, а нули – единицами. Например, число
у= -10011 имеет прямой код = 110011, то его обратный код будет иметь вид =101100. Здесь знаковый разряд не меняет своего значения, а цифровые разряды заменены противоположными значениями.
Д о п о л н и т е л ь н ы й к о д
Дополнительный код получается из обратного путем прибавления единицы к младшему разряду.
То есть, если обратный код числа у= -10011 представляет собой
= 101100,
то дополнительный код будет иметь вид
101100
+
1
101101
Использование обратного и дополнительного кода позволяет значительно упростить процесс алгебраического сложения (вычитания) и свести его к простому арифметическому сложению. В этом случае положительное число представляется всегда только в прямом коде, а отрицательное число – либо в обратном, либо в дополнительном коде. Затем производится арифметическое сложение этих кодов, включая и знаковые разряды, воспринимаемые как старшие. В этом случае выполняются следующие правила:
-
при использовании обратного кода, возникающая единица переноса из знакового разряда прибавляется к младшему разряду суммы,
-
при использовании дополнительного кода, возникающая единица переноса отбрасывается.
Например, требуется сложить два числа х = = и у=.
Прямой код для положительного числа х имеет вид
Прямой код для отрицательного числа у
Обратный код для отрицательного числа у
Дополнительный код для отрицательного числа у
Операция сложения с использованием обратного кода отрицательного числа у.
0110
+
1100
10010
+
1 перенос единицы со знакового разряда с добавлением в младший разряд суммы.
В результате получается
х + у = 0011 =
Операция сложения с использованием дополнительного кода
0110
+
1101
10011
отбрасывание