- ベストアンサー
二進数の仕組み
数学が苦手なのですが、 二進数を勉強していて、疑問に思ったのですが 二進数の重みが1,2,4,8,16・・・と続いて いく上で、隣の重みを順に足していった数+1が その隣の重みと等しくなる理由を理解しやすいように 教えていただきたいのですが・・・ わかりにくい質問で申し訳ありませんが、 よろしくお願いいたします。 例:1+2=3 3+1=4=隣の重み
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
んー・・・・。 0001(1) + 1 = 0010(2) 0011(3) + 1 = 0100(4) 0111(7) + 1 = 1000(8) みたいな事ですよね? 2進数のまま考えた方が、感覚的にしっくり来ると思います。 以下、2進数でのお話。 「重みを順に足していったもの」というのは、 低い桁から順にずらっと1が並んだ状態の事。 1 (1) 11 (1+2=3) 111 (1+2+4=7) 1111 (1+2+4+7=15) 11111 (1+2+4+7+15=31) ここに+1されるので、 (31+1の場合) 11111 (31) + 00001 (1) ------ 100000 (32) と桁上がりして、隣の重み(この場合32)と等しくなります。
その他の回答 (5)
- silverbear
- ベストアンサー率25% (163/639)
なんというか、俺が「隣の重み」がいまいち理解できてないのですが、とりあえず10進で考えて見ましょうか。 9+1=10、 99+1=100、 999+1=1000 と、「桁が増える直前の数字」に1を足すと「隣の重み」になります。(この使い方でいいんでしょうか?) 10進数の場合は一桁に0~9まで有るので、「隣の重みを順に足していった数」をどう表現すべきかよく分からないのですが、2進の場合は1+1=10 11+1=100と、「隣の重みを順に足していった数」がもうすでに「桁が増える直前の数字」になってしまっています。 逆に考えて見ますね。10進で 10-1=9、100-1=99、1000-1=999 となります。つまり”(n+1)進数”の場合 10-1=n、100-1=nn、1000-1=nnn となります。 2進の場合「隣の重み」がそれぞれ 1,10,100,1000,10000・・・・と、「隣の重み」を全部足すと必ず11111のように全部1になります。これは2進の場合「桁が増える直前の数字」です。 これを10進でなにやってるか考えてみると 9+90+900に1を足すと1000になる と言う事をやっているんですね。
- kazuhisa01
- ベストアンサー率32% (158/487)
むむ!自分の考えは勘違いでしたか。 111111に1を足すと1000000になる理由ですか・・・。 全く違う答えを書いてしまった。 二進数っていうのは0と1で表示するのはわかっているのですよね。 1に1を足すと2になりますが、これは当たり前です。 しかし、二進数では2という表示はできないため、10っていう表示になります。 ここまで大丈夫なら111111が1足されると1000000になる理由もわかりますよね。 連続投稿申し訳ありませんでした。
- kazuhisa01
- ベストアンサー率32% (158/487)
> 隣の重みを順に足していった数+1 ってのは違うんじゃないかと思いますよ。 ん~1+2=3 3+1=4はわかりますが、2+4=6 6+1=8にはならないよね。 a+(a+a)=b b+a=c ってのはわかりますか? これが二進数の仕組み?です。 要は、次の次の数は最初の数を4回足したものになります。
補足
>2+4=6 6+1=8にはならないよね。 それは、重みと重みを足してますよね。 一応順にという記載を入れたのは そう勘違いされたくなかったためなんですが 自分で読んでもわかりにくいですね。 すいませんでした。
- porilin
- ベストアンサー率22% (142/631)
10進数だと10個あつまって桁があがりますから、同じ数(仮に1)が隣り合わせにあると、10倍になります。 2進数は2個集まると桁が上がるので、2倍になりますね。 1の2倍が2 2の2倍が4 4の2倍が8 だから、2進数の1111は1+2+4+8=15 と、なります わかりにくいですか?
- minofenv
- ベストアンサー率23% (76/328)
隣の重みを順に足していった数というのは、2進法で111・・・11と表記されているときの数を表します。これに1を足すと。順に繰り上がり、1000・・・・000になります。 十進法で考えると、999・・・999に1を足すと1桁あがって、1000・・・000になるのと同じです。
お礼
よくよく考えてみればそういった事ですよね。 単純な質問に答えていただきありがとうございました。
お礼
詳しく説明して頂きありがとうございました。