したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

喫茶店の相談カウンター

252めもり:2008/04/21(月) 00:11:40 ID:cq5Ew8VM0
「2進数で負の数を表す」その2

とりあえずプラス方向に8つ分の2進数を10進数と対応させて書いてみます。
後々の都合上、大きいほうから降順に書きました。

7(10) → 0111(2)
6(10) → 0110(2)
5(10) → 0101(2)
4(10) → 0100(2)
3(10) → 0011(2)
2(10) → 0010(2)
1(10) → 0001(2)
0(10) → 0000(2)

次に、マイナス方向を増やしていきます。
10進数では0-1=-1ですから、2進数でも同じことをしてみます。
すると、
0000-1=1111

なぜこうなるか。またもや、さっきの「4bitしか使えませんよ」を思い出してください。
コンピュータの言い分としては、
「1111+1=0000でいいんでしょ?だったらそのまんま
左辺-1=右辺-1でいいじゃん?([左辺-1=右辺-1]つまり[1111=0000-1])」
ということらしいです。(説明を簡単にするため、そういうことにさせてください。)

すると
0(10) → 0000(2)
-1(10)→ 1111(2)(上から1減らす)
-2(10)→ 1110(2)(上から1減らす)
-3(10)→ 1101(2)(上から1減らす)
-4(10)→ 1100(2)(上から1減らす)
-5(10)→ 1011(2)(上から1減らす)
-6(10)→ 1010(2)(上から1減らす)
-7(10)→ 1001(2)(上から1減らす)
-8(10)→ 1000(2)(上から1減らす)

こんな風になりました。
そして、さらに進めると、

-8(10)→ 1000(2)
-9(10)→ 0111(2)(上から1減らす)

あれ?
7(10) → 0111(2)
じゃなかったっけ?

はい、1周して戻ってきました。プラスに8つ、マイナスに8つと計画した以上、
どうやら4bitで-9は無理なようです。
では最後に、プラスとマイナスをまとめて書いてみますね。
0を基準にして、プラス方向とマイナス方向に眺めていってください。

7(10) → 0111(2)(下に1足す)
6(10) → 0110(2)(下に1足す)
5(10) → 0101(2)(下に1足す)
4(10) → 0100(2)(下に1足す)
3(10) → 0011(2)(下に1足す)
2(10) → 0010(2)(下に1足す)
1(10) → 0001(2)(下に1足す)
0(10) → 0000(2)(ここが基準はおkでそ?)
-1(10)→ 1111(2)(上から1減らす)
-2(10)→ 1110(2)(上から1減らす)
-3(10)→ 1101(2)(上から1減らす)
-4(10)→ 1100(2)(上から1減らす)
-5(10)→ 1011(2)(上から1減らす)
-6(10)→ 1010(2)(上から1減らす)
-7(10)→ 1001(2)(上から1減らす)
-8(10)→ 1000(2)(上から1減らす)


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板