back

補数と負数(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までしかあらわせないです
> もんね。この経験からこの手の問題にまた親しみがもてました。

 私もこれで,数時間悩んだことがあります。あふれを忘れていました。