[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
|
1-
101-
201-
301-
401-
501-
この機能を使うにはJavaScriptを有効にしてください
|
喫茶店の相談カウンター
254
:
めもり
:2008/04/21(月) 01:28:33 ID:cq5Ew8VM0
「2進数で負の数を表す」には、2の補数を利用してあげれば楽
では簡単な問題を解きながら考えましょう。
問題「10進数の-5を2進数で表せ。但しデータビットは4ビットとし、負の数は2の補数表現で表すものとする。」
いきなり-5を負の2進数に直すのは大変なので、まず、考えるのは、
「-5+5を2進数でやったら、桁が1つ増えりゃいいんだよな?」という事です。
「5を4bitの2進数で表すとAAAAになって、そいつと-5の2進数BBBBを足すと10000になるんだな」
と分かれば後は計算あるのみ。
まず、5を2進数にします。5(10)→101(2)。ただ、4bitと指示があるので「0101」ですね。
で、これと-5(以後、2進数でBBBBと表記しますね)を足せば10000になるはず!
ということは、
0101+BBBB=10000と表せるので、右辺と左辺をググッ!っと移動させて、
10000-0101=BBBBですな。ここはがんばって引き算します。
すると、BBBB=1011。これが答えです。
もう1つの答えの出し方は、もっと簡単です。
0000-1をすると当然-1を2進数で表したものが出てきます。
そして、その値はといえば、
>>252
で書いたように、1111です。以後-5になるまで1個ずつ-1していきます。
0(10) → 0000(2)
-1(10)→ 1111(2)
-2(10)→ 1110(2)
-3(10)→ 1101(2)
-4(10)→ 1100(2)
-5(10)→ 1011(2)
この方法なら簡単ですが、数字が大きくなると大変なことになります。
では、大変な問題を1つ
「-385を2の補数表現で表せ。但しデータビットは10bitとする。」
やることは同じです。
「-385と385をそれぞれ2進数で足し算した11桁になるのね。」
385を2進数に直すと、110000001なので10bitに直して「0110000001」
0110000001+求めたいヤツ=10000000000なので
10000000000-0110000001=1001111111
が答えですね。これを、385回引き算を繰り返すのは、ちょっと・・・・。
さて、ここまでで分からなくなるところがあるとすると、
「10進数を2進数に直す(いわゆる基数変換)」ところと「2進数の引き算」でしょうか?言ってくれればまた対応しますb
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板