Получен правильный результат в дополнительном коде. ЕДИНИЦУ ПЕРЕНОСА из знакового разряда компьютер ОТБРАСЫВАЕТ.
Проблемы, связанные с арифметическими операциями над отрицательными числами.
Перваяиз этих проблем - переполнение (оvегflow). Она заключается в том, что при сложении двух положительных или двух отрицательных чисел может возникнуть переполнение в знаковом бите, например:
а) Сумма двух положительных чисел б) Сумма двух отрицательных чисел
0 1000 (+8) 1 1000 (-8)
+0 1011 (+11) +1 0101
1 0011 (—13!!!) 0 1101 (+13!!!)
получается отрицательной получается положительной
Рис. 2.5. Переполнение при выполнении сложения
В примере (а) результат сложения (+8) + (+11) равен —13. В данном случае произошло переполнение из четвертого значащего бита в знаковый (в действительности число 10011b - 19 является корректным результатом). В примере (б) показана та же ситуация при сложении двух отрицательных чисел. Переполнение может возникнуть только в том случае, если оба операнда имеют одинаковые знаковые биты. Поэтому для обнаружения переполнения следует отслеживать значение знакового бита результата, отличающееся от значения знаковых битов операндов.
Вторая проблема касается выполнения арифметических операций над знаковыми операндами разной разрядности, например:
а) Расширение положительного числа
00011001 (+25)
0011 (+03)
????
00011001 (+25) 00000011 (+03)
00011100 (+28)
б) Расширение отрицательного числа
0011001 (+25)
1101 (-03)
????
00011001 (+25)
+ 11111101 (-03)
00010110 (+22)
Рис. 2.6. Сложение чисел разной разрядности
В обоих примерах показано сложение 4-битного числа с 8-битным. Если первый операнд положителен, его разрядность можно увеличить до 8 бит, заполнив свободные позиции нулями. Если же требуется расширить отрицательное число, то решение уже не так очевидно. В этом случае расширение числа производится путем заполнения пустых разрядов единицами.
ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ
- Единицей памяти является байт, состоящий из восьми информационных и одного контрольного битов. Два смежных байта образуют слово.
- Сердцем компьютера является микропроцессор, который имеет доступ к байтам или словам в памяти.
- ASCII код есть формат представлением символьных данных.
- Компьютер способен различать биты, имеющие разное значение: 0 или 1, и выполнять арифметические операции только в двоичном формате.
- Значение двоичного числа определено расположением единичных битов. Так, двоичное 1111 равно 23 + 22 + 21 + 20, или 15.
- Отрицательные числа представляются двоичным дополнением: обратные значения бит положительного представления числа +1.
- Сокращенная запись групп из четыре битов представляет собой шестнадцатеричный формат. Цифры 0-9 и AН─FН представляют двоичные числа от 0000 до 1111.
- В двоично-кодированном десятичном формате (или ВСD-формате) десятичные цифры хранятся в виде 4-битных двоичных эквивалентов.
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
1. Напишите binary ASCII кодов для следующих однобитовых символов: а) P, б) p, в) #, г) 5.
2. Напишите binary для следующих чисел: а) 5, б) 13, в) 21, г) 27,д) 409, е) 633
3. Сложите следующие двоичные:
а) 00010101 б) 00111110 в) 00011111
000011010010100100000001
4. Определите двоичные дополнения для следующих двоичных чисел: а) 00010011, б) 00111100, в) 00111001.
5. Определите положительные значения для следующих отрицательных двоичных чисел: а) 11001000, б) 10111101, в) 10000000.
6. Определите шест. представления для а) ASCII символа Q, б) ASCII числа 7, в) двоичного числа 01011101, г) двоичного 01110111.
7. Сложите следующие шест. числа:
а) 23AВ б) 51FD в) 7779 г) EABE
0022 13А3 3887 2 6 C4
8. Представьте десятичное 4587 в BCD упакованном и BCD неупакованном формате в памяти ЭВМ.