[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
|
1-
101-
201-
301-
401-
501-
この機能を使うにはJavaScriptを有効にしてください
|
喫茶店の相談カウンター
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
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板