はい、自分も最初マイナス1にして間違えました..
数式に例えて考えると分かりやすいかも知れません。
38の10の補数で、38をyにして考えると
99-y+1=62 となります。
ここからy自体を求める式へ変換させてみます。
99+1=62+y とyを移動してから、62を移動すると
99-62+1=y とyと62の位置が単純に代わった形式となります。
つまり、同じ方法で戻るってことです。書いてる自分もこれで納得しました。
基本情報処理を4コマにしながら勉強中。 同じ勉強をしてる方々の参考の足しにでもなれば幸いです。
はい、自分も最初マイナス1にして間違えました..
数式に例えて考えると分かりやすいかも知れません。
38の10の補数で、38をyにして考えると
99-y+1=62 となります。
ここからy自体を求める式へ変換させてみます。
99+1=62+y とyを移動してから、62を移動すると
99-62+1=y とyと62の位置が単純に代わった形式となります。
つまり、同じ方法で戻るってことです。書いてる自分もこれで納得しました。
説明文多すぎ..それぐらい自分はここで理解に苦しんだりしました。
これをいきなり2進数で説明されると正直、難しいと思います。
実際、計算で使うのはnの補数だけなので、何故n-1の補数を出すか
って?言うと、n進数のnの補数を導くのにn-1の補数から求めた方が
楽だからです。
文章で説明すると2進数の2の補数の導き方は..
① 0と1をひっくり返す。(1の補数)
② 1を足す。
これだけです。5だと0101をひっくり返して1010にして、1を足す。
そうすると1011の2の補数となり、マイナス5として扱われます。
2の補数の求め方だけで事足りますが、理屈が分からないと8進数
の8の補数とか言われると答えが出せなくなります。
ちなみに2桁の8進数で13の8の補数は77にするための64を出して
(n-1の補数)1を足して65を導きます。
ぺた@ぺん