14: 14(10) = 8+4+2 = 1110(2) В 8-разрядной ячейке: 00001110 В знаковом (старшем) разряде положительного числа - значение "0". Обратный и дополнительный код положительного числа совпадает с прямым кодом.
-31: 31 = 16+8+4+2+1 = 11111(2) В 8-разрядной ячейке: 00011111 Получим обратный код отрицательного числа, заменив все цифры на противоположные (0 на 1, 1 на 0): 11100000 В знаковом (старшем) разряде отрицательного числа - значение "1". Получим дополнительный код отрицательного числа, добавив 1 к младшему разряду: 11100000+1 = 11100001
Выполним сложение: 00001110+11100001 = 11101111 В результате сложения получили отрицательное число (в старшем разряде "1"). Определим абсолютную величину этого числа. Вычтем 1: 11101111-1 = 11101110 Заменим все цифры на противоположные: 00010001 00010001 = 2^4+2^1 = 16+1 = 17
Итак, с учётом знака "-", получили результат -17 14+(-31) = -17
Answers & Comments
Verified answer
14:14(10) = 8+4+2 = 1110(2)
В 8-разрядной ячейке: 00001110
В знаковом (старшем) разряде положительного числа - значение "0".
Обратный и дополнительный код положительного числа совпадает с прямым кодом.
-31:
31 = 16+8+4+2+1 = 11111(2)
В 8-разрядной ячейке: 00011111
Получим обратный код отрицательного числа, заменив все цифры на противоположные (0 на 1, 1 на 0): 11100000
В знаковом (старшем) разряде отрицательного числа - значение "1".
Получим дополнительный код отрицательного числа, добавив 1 к младшему разряду: 11100000+1 = 11100001
Выполним сложение: 00001110+11100001 = 11101111
В результате сложения получили отрицательное число (в старшем разряде "1").
Определим абсолютную величину этого числа.
Вычтем 1: 11101111-1 = 11101110
Заменим все цифры на противоположные: 00010001
00010001 = 2^4+2^1 = 16+1 = 17
Итак, с учётом знака "-", получили результат -17
14+(-31) = -17