с использованием 4-битных чисел, вычисляющих -3 + -3 в дополнение к двум, мои вычисления дают -2.
3 в двоичном виде - это 0011
, дополняющий оба знака путем перестановки всех цифр, поскольку оба являются отрицательными
1100 && 1100
, добавляя к ним однотак как мы используем дополнение до двух
1101 + 1101 =
11010
, первое переполнение и отбрасывается в дополнение к двум.Так что осталось с 1010, что является минус два в десятичной.Может кто-нибудь объяснить, что сделано неправильно в этом процессе?
РЕДАКТИРОВАТЬ
Моя проблема, кажется, более конкретно, как интерпретировать результат вычисления дополнения до двух.Я отношусь к результату следующим образом:
Результат равен 1010. В моем мире первый бит является знаковым битом, указывающим, что число является отрицательным.Следующие 0 означают, что есть 0 из -4, следующие 1 означают, что есть 1 из -2, следующие 0 означают, что есть 0 из -1
, поэтому я интерпретирую это как результат -2