• 締切済み

固定小数点数について

1001を固定小数点数で表すといくらになるか?という問いに対してですが、(1)全ビットを反転させる(0110) (2)+1で(0111)=7 (3)したがって (1001)=-7になります。←(検証)-8+1=-7 答え 1001は-7。 ちなみに、1000を固定小数点数で表すといくらになるか?ですが、 上記の方法で行うと、 (1)0111 (2)ここで+1だと、すでに1が立っているので?です。 いろいろ、サイト巡って調べていますが、まだ、固定小数点数について 理解できていません。よろしくお願いします。

みんなの回答

回答No.1

それは固定小数点ではなくて、2の補数だと思いますが。 たとえば2桁なら 11:-1 00:0 01:1 ですよね? じゃあ10は?っていったら2か-2かってことになりますけど、最上位ビットが立ってるので、-2の方に割り付けたわけですね。 >(2)ここで+1だと、すでに1が立っているので?です。 ビットを反転させて+1した時点の値を「符号なし」として読むわけです つまり、 1000=>0111=>1000ですので、-8 先ほどの例でいけば 10=>01=>10となってやはり-2と、こうなります。

dert342
質問者

お礼

maccha_nekoさん、回答ありがとうございます。2の補数についての考え方が整理できました。例えば下記の問いに対しては 問1)1101は2の補数ではいくらになるか? 【定義】 2の補数・・そのけた内の最大数+1から13(1101)2を引いたもの。 (10000)2-(1101)2=(0011)2 したがって-3 ※ポイントは「そのけた内の最大数+1から・・」なので(10000)2になる。 よって、上記で解くと10は-2となる。 逆に下記の問いに対しては 問2)-2は2の補数ではいくらになるか? (1)+2を2進数で表す。→0010 (2)全ビットを反転させる→(1101) (3)+1より(1110)桁上がり→16-14=2 したがって(1110)2。 と、私なりに整理できました。ビットの反転は問2の場合に使用するのですね~。次は固定小数点数について理解深めていきます。先は長いです~。

関連するQ&A