- ベストアンサー
8ビットの2進数
8ビットの2進数で表せる数の範囲は、負の数も含めると、 -2`(8-1)~(2`(8-1))-1 ですが、 ↑ ↑↑ この3つの-1はどのような意味があるのでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
8ビットであらわせるのは2^8の256種類。 正の整数だけなら0~255になります。 これを式で表すと0~(2^8)-1 負の数を含めるなら、128を引いて 「0~255」→「-128~127」とします。 これを式にすると「-1*(2^7)~(2^7)-1」となり 8ビットである事を意識するなら 「-1*(2^(8-1))~(2^(8-1))-1」とも書けるでしょう。
その他の回答 (2)
- hey_hey_11
- ベストアンサー率25% (235/921)
-2^(8-1)と2^(8-1)の-1の意味ですが、これは、8bit目が符号となるため、 数字としては、7bit分しか表せないため、-1します。 (2`(8-1))-1の全体に-1をするのは、 0000 0000=0 0000 0001=1 1111 1111=-1 0000 0010=2 1111 1110=-2 で正負を表します。 でも、ここで2^(8-1)を計算すると1111 1111が正の数になってしまいますので、正の数に含めないために、正の数は全体を-1します。
お礼
回答ありがとうございます。
- kmee
- ベストアンサー率55% (1857/3366)
負の表現方法には、いろんなものがあります。 http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7%E4%BB%98%E6%95%B0%E5%80%A4%E8%A1%A8%E7%8F%BE 8ビットで表現できる値は、2^8=256通りです。 一つを「0」と決めれば、2^8-1=255通りになります。 この255を、正負に等しく分けようとすると、(2^8-1)/2=2^7あまり1 となります 2^(8-1)は、正負に振り分けて半分になるので、 2^(8-1) = 2^8 / 2 の意味です。 あとは、この「余り1」をどうするか、です。 上にある「1の補数表現」等では、「-0」という「負の0」として使います。 この利点は、正負が同数になること。欠点は、-0という使い道の難しい値があるということ。 「2の補数表現」では、-2^7として使います。 利点は、2^8通り全てが違う値になること、欠点は、正負が不均等になることです。-128は表現できるけど、+128が表現できません。 -128にするのは「最上位ビットが1なら負の数」というルールが適用できるからです。 エクセス127では、逆に+128にしています。 この方法については、Nを自由に都合良く決められるので、-15~240などといった表現も可能です。
お礼
回答ありがとうございます。
お礼
回答ありがとうございます。