- 締切済み
2進数10進数の問題です
試験の過去問を解いてわからないので教えて下さい。 負数を2の補数表現であらわすとき、次の8ビットの2進数は10進数ではいくらになるか。 1. 10011101 2. 01100011 3. 011000.11 です。 解き方は、128.64.32・・・・ のやりかたでしょうか? このやり方であってたとすると、問3の011000の後の.11はどうなるんでしょうか? 問題が分かる方教えて下さい。 お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- info22
- ベストアンサー率55% (2225/4034)
> 1. 10011101 先頭ビット1で負数にとり負号を分離し、絶対値を取り出してから、10進数に変換する。 =-(01100010+1)=-(01100011) =-(1+2(1+2(0+2(0+2(0+2(1+2*1)))))) =-(1+2+2^5+2^6)=-(3+32+64)=-99 という計算をします。 > 2. 01100011 問1.の「2の補数」なので 99 > 3. 011000.11 問2.の2ビット右シフトなので 2^(-2)=1/4倍 になるので 99/4=24.75 となります。
- jmh
- ベストアンサー率23% (71/304)
> 128.64.32.16.8.4.2.1(1の部分のみ計算) > で128+32+8+1=169 > あぁ、2のベキ乗なんですか。 続きは、…,128,64,32,16,8,4,2,1,0.5,0.25,…だと思います。 例えば、101010.01を10進になら、32+8+2+0.25=42.25かしら。 101010.01 を 100(2)倍した10101001を10進にして 169、これを4(10)=100(2) で割っても同んなじ 169÷4=42.25。
- okazaki0ko
- ベストアンサー率15% (37/238)
1.は、最上位ビットが1なので負の数になります。 よって、全ビットの1の補数を取り(要はビット反転)、1を加算します。 すると、それを10進数に変換すると絶対値が得られるので、符号として「-」を付けます。 ** 例 ** 元の2進数 11111110 ビット反転して 00000001 1を加算して 00000010 10進数だと 2 符号「-」を付けて -2 2.は、そのままです。 これがわからないのであれば、その試験を諦めた方がいいです。 3.は、固定小数点です。 左方向に桁が上がると×2(2進数だから)されていくのは理解していると思います。 右方向に桁が下がると÷2(2進数だから)されていきます。 すなわち、2進数0.1は10進数にすると1÷2=0.5となります。 同様に、2進数0.01は10進数にすると1÷2÷2=0.25、2進数0.001は10進数にすると1÷2÷2÷2=0.125となります。
- jmh
- ベストアンサー率23% (71/304)
> 解き方は、128.64.32・・・・ > のやりかたでしょうか? > 「128.64.32・・・・」って何んですか?
お礼
説明不足ですいません。 例えば、10101001を10進数変換なら、 128.64.32.16.8.4.2.1(1の部分のみ計算) で128+32+8+1=169 です。