アプリ版:「スタンプのみでお礼する」機能のリリースについて

1の補数とはなんですか?
よくわかりません。
高校数学です。
例題)485の1の補数と2の補数を答えなさい。

よくわからないので回答と解説をお待ちしています。

A 回答 (3件)

いまだに、数学の教科書に「1の補数」とかでてくるんですか?


これは驚いた。それは、昭和のころの古いコンピュータ用語です。

PCの内部では、数を有限桁の二進数で表しています。
数を32桁の二進数で表せば32ビットPC、
64桁の二進数で表せば64ビットPCです。
私がパソコン少年(死語ですね)だった頃は、8ビットPCが主流でした。

8ビットPCでは、十進数の 4 が 00000100、6 が 00000110、
15 が 00001111 というふうに表されています。
この二進数の各桁の 0 と 1 を反転させたものが「1の補数」です。
4 に対する1の補数は 11111011、6 に対する1の補数は 11111001、
15 に対する1の補数は 11110000 です。

更に「1の補数」に 1 を足したものが、「2の補数」です。
4 に対する2の補数は 11111100、6 に対する2の補数は 11111010、
15 に対する2の補数は 11110001 になります。
1 を足したとき、二進数の繰り上がりが起こっていることに注意して
眺めてください。

PCでは、この「2の補数」を負の数を表現するために使います。
8ビットで 15 を表す 0000111 に、15 に対する2の補数 11110001 を
足してみましょう。二進数の足し算を行うと 100000000 ですね。
ところが、8ビットPCでは数は8桁の二進数なので、一番左の桁の 1 は
数を入れておく場所からはみ出してしまい、8桁の 00000000 だけが
計算結果として記憶されます。これを「桁あふれ」といいます。
15 に足して結果が 0 になったので、15 に対する2の補数 11110001 は
-15 を表していると考えるのです。

現代では、1の補数は、2の補数を求めるための単なる途中計算です。
更に古い時代には、1の補数を負数と考え、あらかじめ2の補数にするのでなく
負数を足す(あるいは引き算をする)ときに結果に +1 していた頃があります。
「1の補数」という名前がわざわざつけてあるのは、この時代の名残です。
ここまでくると、もはや計算機科学ですらなくて、考古学の話題のようです。

以上の説明で判るように、「1の補数」「2の補数」といっても、
数を何ビットで考えているかで値は違ってきます。
8ビットでの十進数 4 に対する2の補数は 1111100、
16ビットでの十進数 4 に対する2の補数は 111111111111100 です。

十進数485は、例えば16ビットで表すと 0000000111100101 なので
16ビットでの1の補数は 1111111000011010、
16ビットでの2の補数は 1111111000011011 です。
例題は、何ビットでの話なんでしょうね?
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2019/11/25 07:06

補数とは何かと云う事は 分かりますか。


次を参考にしてみて下さい。
https://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9 …
或いは こちらの方が良いかも。
https://proengineer.internous.co.jp/content/colu …
    • good
    • 0
この回答へのお礼

ありがとうございやす

お礼日時:2019/11/25 07:06

自然数mに対して


m<2^k
となる最小の自然数kに対して
n=(2^k)-1-m
を1の補数という

485を2進数になおす

485
=256+128+64+32+4+1
=
111100101(2進)
↓ビット反転により1の補数を求める
000011010(2進)
=16+8+2
=
26

485=111100101(2進)の1の補数は
26=000011010(2進)

1の補数に1を足したものが2の補数

485=111100101(2進)の2の補数は
27=000011011(2進)
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2019/11/25 07:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!