Умножение повторяется дополнение. Например, 3 x 7
- это три копии из семи добавленных вместе.
Аналогичным образом разделение повторяется вычитанием. Это количество раз, когда вы можете вычесть одно число из другого, пока не достигнете или не достигнете нуля.
Примером этого является 17/4
:
17 - 4 = 13 (once)
13 - 4 = 9 (twice)
9 - 4 = 5 (thrice)
5 - 4 = 1 (fource?)
1 - 4 = -3
Следовательно 17/4
равно 4
, с остатком 1
.
С точки зрения добавления и вычитания двоичных чисел, два дополнения фактически делают это проще, поскольку метод кодирования означает, что вы используете дополнение независимо от того, что.
Например, вот два примера добавляющие 5
и -5
10:
0000 1010 (10) 0000 1010 (10)
0000 0101 (5) 1111 1101 (-5)
-------------- --------------
0000 1111 (15) 0000 0111 (5)
И, чтобы превратить положительное число в его отрицательный, вы просто инвертировать все biuts затем добавить 1
.
Чтобы на самом деле добавить два двоичных чисел немного в то время, вы просто использовать правила, которые вы использовали, вы должны узнали в начальной школе/классе школы:
carry = 0
for each bit position starting at right:
tempnum = carry + num1[position] + num2[position]
result[position] = tempnum modulo 2
carry = integer(tempnum/2)
end for
Да, я знаю, что на самом деле это это первый вопрос. Но я застрял в реализации этого в двоичном коде. Как я могу это сделать? – JaxTeller61
@ JaxTeller61: повторяю после меня: «нет такой вещи, как« двоичные числа ». Повторяйте, пока не поверите. («Binary» - это просто обозначение *!) – usr2564301