- •1. Классификация и информационно-логические основы построения эвм
- •1.5. Представление информации в вычислительных машинах
- •Представление чисел с фиксированной и плавающей запятой
- •Выполнение операций над числами с плавающей запятой
- •Алгебраическое представление двоичных чисел
- •Арифметические операции в двоичной системе счисления
- •Выполнение арифметических операций в дополнительных кодах
- •Особенности выполнения операций в обратных кодах
- •Представление информации в других системах счисления
- •Арифметические операции в шестнадцатеричной системе счисления
- •1.6. Особенности кодирования информации в персональном компьютере
- •1.7. Логические основы построения вычислительной машины
- •Элементы алгебры логики
- •Выполнение логических операций в компьютере
- •Xor (исключающее или)
- •Логический синтез вычислительных схем
Арифметические операции в двоичной системе счисления
Правила выполнения арифметических операций в двоичной системе счисления аналогичны правилам операций в десятичной системе счисления. Например:
Сложение |
101110 |
Вычитание |
101110 |
+ |
001011 |
– |
001011 |
Результат |
111001 |
Результат |
100011 |
Умножение |
101101 х 101 101101 00000 101101 |
Деление – |
101101/101 101 1001 0 101 –101 0 |
Результат (произведение) |
11100001 |
Результат (частное) |
1001 |
Выполнение арифметических операций в дополнительных кодах
При выполнении арифметических операций в компьютере обычно применяются не простые, а модифицированные коды. Модифицированный код отличается от простого использованием для изображения знака числа двух разрядов. Второй знаковый разряд служит для автоматического обнаружения ситуации переполнения разрядной сетки: при отсутствии переполнения оба знаковых разряда должны иметь одинаковые цифры (нули или единицы), а при переполнении разрядной сетки цифры в них будут разные. При переполнении результат сдвигается вправо на один разряд.
Сложение производится по обычным правилам сложения двоичных чисел: единица переноса, возникающая из старшего знакового разряда, просто отбрасывается.
Примеры сложения:
X =-0,1101; Y =0,1001. Результат сложения: 11,0011+00,1001 = 11,1100 (или -1100);
Х =0,1101; Y =0,1001. Результат сложения: 00,1101 + 00,1001 = 01,0110 (переполнение, после сдвига вправо получим 00,10110, или +10110);
X =0,1101; Y =-0,1001. Результат сложения: 00,1101+11,0111= 100,0100 (или 00,0100);
Х =-0,1101; Y =-0,1001. Результат сложения: 11,0011+11,0111= 10,1010 (переполнение, после сдвига вправо получим 11,01010, или -10110).
Умножение чисел в дополнительных кодах производится по обычным правилам умножения двоичных чисел. Единственной особенностью является то, что если сомножитель является отрицательным (знаковые разряды равны 11), то перед началом умножения следует приписать к нему слева столько единиц, сколько значащих разрядов у другого сомножителя справа от запятой. Результат (произведение) всегда получаем в дополнительном коде.
Примечание. Добавление единиц слева перед отрицательным числом не изменяет его величины, так же как перед положительным числом можно написать сколь угодно нулей, не изменяя величины числа; наоборот, перед отрицательным числом (в дополнительном или обратном кодах) добавление лишних нулей недопустимо.
Примеры операции умножения:
Х = 0,111; Y= 0,101; X ·Y =0,100011 Х =0,111; Y=- 0,011; X ·Y = -0,011101
00,111 00,111
х 00,101 , х 11111,011
00111 00111
00000 00111
00111 00000
00000 00111
00000 00111
00,100011 00111
00111
00111 001011,011101→11,011101
Х=-0,001; Y=0,101; X ·Y=-0,011101; Х= -0,001;·Y=-0,011; X ·Y =0,100011
11111,001 11111,001
х 00,101 х 11111,011
11111001 11111001
00000000 11111001
11111001 00000000
00000000 11111001
00000000 11111001
001011,011101 → 11,01101 11111001
11111001
11111001
1111010000,100011→00,100011