Консультация № 31962
21.12.2005, 17:20
0.00 руб.
0 1 1
Доброе время суток!
Что-то я немного запутался, помогите разобраться...
переведем числа в обратный код:
(-64)+(+27) -----------> 11100100+10111111=110100011
(+38)+(-38) -----------> 01011001+11011001=100110010

А в дополнительном коде вообщее...
(-73)+(+54):
10110111+01001010=100000001
(+19)-(-38):
01101100+11011001=
1111111111111111111111111111111111111111111111111111111110010011
Что не так, как правильно?
Спасибо!

Обсуждение

давно
Посетитель
7438
7205
21.12.2005, 18:05
общий
это ответ
Здравствуйте, T0XA!
Немного запутался, это мягко сказано...Такого намутил...
Давай сначала определимся в следующем:
1. В какой системе счисления числа записаны? Предположим, что в десятичной.
2. Что понимаем под обратным кодом? Лично я понимаю двоичную инверсию битов.
Например, 64d=40h=01000000b и тогда -64d = 0bfh = 10111111b
3. Что понимаем под дополнительным кодом? Лично я понимаю знаковую инверсию,
которая получится, когда к обратному коду добавить единицу.
Например, 73d=49h=01001001b и тогда -73d = 10110110b + 1 = 10110111b
Сложение положительного и отрицательного числа в дополнительном коде
должно дать ноль.
Когда разберешься с этим, тогда и со своими примерчиками сам справишься :)
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа