補数と負数(2)
「補数と負数」のページを参照してください。
★★★宿題:二種向け★(2000/3/1)
負数を 2 の補数で表すとき,8
ビットで表現できる整数の範囲を 10 進数でど
れか。
ア 0 〜 255
イ -127 〜 127
ウ -127 〜 128
エ -128 〜 127
(解答)
表現できる整数の範囲
(2^(n−1))−1
〜 −(2^(n−1))
よって
(2^(n−1))−1=(2^(8−1))−1
=(2^7)−1
=128−1
=127
−(2^(n−1)) =−(2^(8−1)
=−(2^7)
=−128
したがって、エが正解。
■宿題メール解答■(宿題メールより)
二種午前平成11年春問2
>補数:Complement 与えられた数を、定められた数から引いた数のこと。コン
>ピュータの中の演算で、負の数を表現するために作られた数。例えば10進数100
>の30は、1から30番目、・・後から逆に数えると71番目になる。この場合の71を
>補数という。真補数ともいう。
>『最新2000年版標準パソコン用語辞典』P455 秀和システム編集部刊
マイナスの30 は,後から数えて 71
ということですね。
8ビットの場合は,マイナス1は,後から数えて,255
番目となるいうことで
しょうか。
> 01111111 : 127
> :
> 00000000 : 0
> 11111111 : -1
> :
> 10000000 : -128
どうもありがとうございました。
>符合ビット
> ↓
>┌─┬─┬─┬─┬─┬─┬─┬─┐
>|0 |1 |1 |1 |1 |1 |1 |1 |
>└─┴─┴─┴─┴─┴─┴─┴─┘
>
┗━━━━━━┳━━━━━━┛
>
7ビット
>
>補数の2進表現は8ビットを用いると上図のように表すことが出来ます。
>符合用に1ビットを用いて残りの7ビットで整数を表すので、2^7=128。
>これが正負で−128〜128としたいところですが、正では0を含みます。
>正負でわけて考えると
>
>正:0〜127
←128個の整数を表せる。
>負:−128〜ー1
←128個の整数を表せる。
>よって、−128〜127
どうもありがとうございました。
> 先日−12を例にして 4ビットで表そうとしたらうまくいかなくて、どうして?
>
と頭が真っ白になりました。ちょっとしてからビットの桁数が足りないという
> ことに気が付きすっきりしました。4ビットでは−8までしかあらわせないです
>
もんね。この経験からこの手の問題にまた親しみがもてました。
私もこれで,数時間悩んだことがあります。あふれを忘れていました。