Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Выполнение операций в обратном и дополнительном кодахВиконаємо нижчеперелічені операції, з використанням додаткового коду. а) С=А+В; б) С=А-В; в) С=-А+В; г) С=-А -В;
де, А=6510, В=4210
1) Представимо числа у двійковій системі числення. А2=1000001, В2=101010
2) Виберемо мінімально можливу довжину розрядної сітки, щоб можна було розмістити операнди А і В з урахуванням знакового біта. Пам’ятайте, що довжина розрядної сітки може дорівнювати 1,2 або 4 байти. Для нашого приклада достатньо одного байта (8 двійкових розрядів). Увага! Формат один байт дозволяє представити додаткові коди чисел зі знаком у діапазоні від -12810 до +12710
3) З урахуванням довжини розрядної сітки, отримаємо: 6510 = 010000012. Зверніть увагу на те, що нулі, у двійковому поданні числа, додані для доповнення розрядної сітки до восьми біт. Аналогічно: 4210 = 001010102.
4) У завданні С=А+В числа додаються додатні, тому представляємо їх у прямому коді. Пам’ятайте! Записи позитивних чисел у всіх кодах однакові й збігаються із прямим кодом.
Апр= 0.1000001 Впр= 0.0101010 ------------------------ Спр= 0.1101011 - двійкова сума
Можна переконатися, що отримана сума це число С= +11010112= +10710
0*27+1*26+1*25+0*24+1*23+0*22+1*21+1*20 = 64+32+8+2+1 = 107
5) Ми розглянули додавання додатних чисел у комп'ютері. Яким чином здійснюється операція - віднімання? Операція віднімання замінюється додаванням. Наприклад, нехай треба виконати віднімання:
С=А-В=65 - 42. Замінимо віднімання операцією додавання, змінивши знак числа В на протилежний: С=А+(-В)= 65 + (-42)=13. Внаслідок зміни знаку, число В стало від’ємним. А від’ємні числа представляються у вигляді ДОДАТКОВОГО КОДУ.
- В= - 4210 = - 001010102
Додатковий код числа (- В)
Вдод = 1.1010101+0.0000001=1.1010110
Переконаємося в правильності подання. Сума +65 і -65 повинна скласти нуль:
+0.1000001 1.0111111 ----------- (1) 0.0000000
Усі вісім біт мають нульове значення. Одиниця переносу (1)зі знакового розряду «відкидається». Це правило дозволяє виконувати віднімання чисел у двійковій системі числення: віднімання заміняється додаванням – знак від’ємника змінюється на протилежний.
Ураховуючи вище викладене – виконаємо С=А-В
Апр= 0.1000001
1 ┐ одиниця переносу зі знакового розряду «губиться»
65 Апр = 0.1000001 -42 Вдод = 1.1010110 ------- ------------------------ 23 Спр= 0.0010111 - двійкова сума
Код результату визначеній за значенням знакового розряду.
Дії, наведені нижче, у детальних поясненнях не мають потреби.
С=-А+В
-А10= - 65; -A2= - 1000001 Апр = 1.1000001; Aдод = 1.0111110 + 0.0000001 = 1.0111111 – виділення розрядів числа іншим кольором не випадково. Зверніть увагу, що двійкове число 01111112 = 6310 є доповненням числа 6510 (10000012) до 12810 (100000002). Aдод =1.0111111 (-65)10 Впр = 0.0101010 (+42)10 -------------------------- Сдод = 1.1101001
Код суми С (додатковий) визначений по знаковому розряду результату двійкового підсумовування. Для одержання прямого коду, у числовій частині додаткового коду «0» поміняємо на «1», а «1» на «0» і до молодшого розряду додамо «1».
Спр = 1.0010110 + 0.0000001 = 1.0010111 (-2310).
Виконаємо С =-А+(-В).
Так, як обоє операнди від’ємні числа то очевидно, що їх необхідно представити у вигляді додаткових кодів. Aдод =1.0111111 (-65)10 Вдод =1.1010110 (+42)10 ------------------------- Сдод =1.0010101
Перетворимо суму в прямий код Спр=1.1101010 + 0.0000001 = 1.1101011; (-1101011)2 = (-10710)
|