- 締切済み
1バイトの数字の範囲
8桁の2進数(1バイト)であらわす数字の範囲は-128~127ということです。 その説明として、111111111が最小で、01111111が最大であり、左端のビットが正負を表すので絶対値として意味のあるのは残りの7bitの1111111すなわち127とのことです。そしたら、-127から127のはずです。さらに1を引く(絶対値に1を足し負の数とする)と10000000となりこれが最小を意味し、2^8=128で左端が1なので負になる、と言う風に読める説明があります。 この説明が腑に落ちないのですが。問題は左端の8bit目が数値1とみたり、正負とみたりしているようです。あるいは同時にどっちもの意味になっているようです。このような説明でもいいのでしょうか。説明というよりそういう取り決めということになるのでしょうか。
- みんなの回答 (9)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4902/10363)
回答No.9
お礼
回答ありがとうございます。私は以下のように間違って考えていました。”左端8bit目は符号、残りの7bitは数値であり、そのため最小の数は7bitがあらわす最大の数1111111=2^7+2^6+2^5...1=127に対してその左端を1にして負にした-127である”ということです。しかしそれは間違いでさらに1を引き-128となるということです。 この辺の理解ができていないのです。”2の補数表現”によって負数を表すということですが、正の数はどうなるのでしょうか。数はすべて”2の補数表現”になるのでしょうか。