回答編集履歴
1
不足を追記しようとしたがとりあえずここまで
answer
CHANGED
@@ -39,6 +39,17 @@
|
|
39
39
|
となります。減算の繰り下がりに比べたら加算の繰り上がりのほうが簡単で、
|
40
40
|
10000引くという計算は簡単なので、そのまま減算するより楽になります。
|
41
41
|
こういうxを、今は10進数で考えているので、10の補数表現といいます。
|
42
|
-
4桁で考えた場合、最後の10000引く操作は桁あふれした分を除外することに
|
42
|
+
4桁で考えた場合、最後の10000引く操作は桁あふれした分を除外することに相当します。
|
43
43
|
|
44
|
+
このxを求めると、1589=10000-xですから、**x=10000-1589**となります。
|
45
|
+
やっぱり繰り下がりのある引き算になるじゃないか…となりそうですが、この計算を
|
46
|
+
```
|
47
|
+
x = 10000 -1589
|
48
|
+
= (9999+1)-1589
|
49
|
+
= (9999-1589)+1
|
50
|
+
= 8410 +1
|
51
|
+
=8411
|
52
|
+
```
|
53
|
+
とします。3行目のカッコ内は10進数で使う最大の数字9が並んだ数からの引き算なので、繰り下がりなく引き算ができます。このカッコの計算で出てきた8410は、1589の**9の補数**というものです。10の補数より1小さいので9の補数というわけです。
|
54
|
+
|
44
55
|
これと同じことを2進数でもやるわけです。
|