アプリ版:「スタンプのみでお礼する」機能のリリースについて

16進小数2A.4Cと等しいものはどれか。

答えは、2^5+2^3+2^1+2^-2+2^-5+2^-6なのですが、Cの部分だけうまく計算できません。

[自分の計算の仕方]
2 -> 16*2 < 2^5 

こんな流れでやっているのですが、これよりも効率的な解き方ありますか?

回答お待ちしております。

A 回答 (8件)

>12/256を2^aという形にできないのです。



まず、分子の「12」を「8、4、2、1」に分解します。

12=8+4ですから、8と4に分解します。

12/256=8/256+4/256

次に、それぞれを約分します。

8/256=4/128=2/64=1/32

4/256=2/128=1/64

32は「2の5乗」です。

64は「2の6乗」です。

32(2の5乗)の逆数の「1/32」は、乗数「5」をマイナスの「-5」にした物になります。

64(2の6乗)の逆数の「1/64」は、乗数「6」をマイナスの「-6」にした物になります。

32=2^5、1/32=2^-5

64=2^6、1/64=2^-6

なので

12/256=8/256+4/256=1/32+1/64=2^-5+2^-6

となります。

なお「12/256のように、10進数にしてしまうのが間違い」なので「10進数にしないで考える」ようにしないと、効率的に解く事は出来ません。

効率的に解きたいなら「Cを12にしないで1100にする」のを身に付けましょう。

12とか256とかが出てきた段階で、効率的に解く事は出来なくなります。
    • good
    • 1

16進数の 2A.4C を2進数に変換する


0010 1010 . 0100 1100

小数点から左に向かって整数部分の各桁が1の部分の値を 2^n で計算します。
2^1 = 2
2^3 = 8
2^5 = 32 計42

小数点から右に向かって少数部分の各桁が1の部分の値を 2^-n で計算します。
2^-2 =0.25
2^-5 =0.03125
2^-6 =0.015625 計 0.296875

整数部と合わせて 42.296875 ですね

>これを十進数になおし、…

上の説明のように16進数から2進数に変換したら、直接 2^n の式に変換します。

ちなみに べき乗の^記号ですが計算する物によっては、必ずしもべき乗とは限りません。
例えばC言語では^はXOR(排他的論理和)の演算子なので、
2^5=32とならずに、XORのビット演算をして11(B)と計算されるので注意が必要です。
    • good
    • 0

訂正と補足します。



前の回答で私が書き込んだ
>後ろの部分の桁がズレているのではないですか?
は私の勘違いです、無視して下さい。

それで、小数部の計算は分数でと言うのが私のアドバイスです。
マイナスのべき乗なんて理解しにくいでしょう。

16進数から2進数への変換はパターンを覚える事
昔は指を折り曲げて二進数で数える事をしました。
http://tano2chan.doorblog.jp/archives/2590737.html
折り曲げた指を1とする方法と、伸ばした指を1とする二通りありますが、
親指から薬指までの4本指で0~F(15)まで数えれます。
    • good
    • 0

訂正と補足します。



前の回答で私が書き込んだ
>後ろの部分の桁がズレているのではないですか?
は私の勘違いです、無視して下さい。

それで、小数部の計算は分数でと言うのが私のアドバイスです。
マイナスのべき乗なんて理解しにくいでしょう。

16進数から2進数への変換はパターンを覚える事
昔は指を折り曲げて二進数で数える事をしました。
http://tano2chan.doorblog.jp/archives/2590737.html
折り曲げた指を1とする方法と、伸ばした指を1とする二通りありますが、
親指から薬指までの4本指で0~F(15)まで数えれます。

この回答への補足

回答どうもありがとうございます。

Cは二進数で1100ですよね。
これを十進数になおし、2^aのような形にする作業なのですが、どうしてもCが2^-5+2^-6になってくれないのです。

12/256を2^aという形にできないのです。

分かりにくいかと思いますが、よろしくお願いします。

補足日時:2014/10/10 23:06
    • good
    • 0

追記。



>効率的な解き方ありますか?

効率的に解くカギは「10進数で考えない」です。

式の中に「2^5」とかが出てきても「それが10進数でいくつなんだろう」ってのは考えちゃいけません。

「2^5」ってのが出てきても「2^5のまま置いとく」のです。

そうすれば、先ほどの当方の回答の通り「機械的な作業のみ」で「2^5+2^3+2^1+2^-2+2^-5+2^-6」と言う式に辿り着く事が出来ます。
    • good
    • 0

後ろの部分の桁がズレているのではないですか?



16進数の 2A.4C を2進数に変換する
0010 1010 . 0100 1100

二進数では1の桁は1で、その上の桁は2、4、8、16と倍々の値になっていく
二進数の少数派第一位は1/2で、その下の桁は1/4、1/8、1/16と半分ずづ小さくなる
二進数で1になっている桁の値を全部合計する

32+8+2 + (1/4)+(1/32)+(1/64)=42.296875

2^5+2^3+2^1 … でも計算結果は同じだけど、この方が考え方は簡単ですね。
    • good
    • 0

>16進小数2A.4Cと等しいものはどれか。



> 答えは、2^5+2^3+2^1+2^-2+2^-5+2^-6

まず、1桁づつ、4桁の2進数にします。

2A.4C

2=>0010
A=>1010

4=>0100
C=>1100

次に、0とかを省かず、そのまま並べます。

2=>0010
A=>1010

4=>0100
C=>1100

0010 1010 . 0100 1100

次に、小数点の左側を「?×2^n」に、右側を「?×2^-n」にして、式にします。「?」は、2進数にした時の「0」か「1」のどちらかです。

0010 1010 . 0100 1100

0×2^7+0×2^6+1×2^5+0×2^4 + 1×2^3+0×2^2+1×2^1+0×2^0 + 0×2^-1+1×2^-2+0×2^-3+0×2^-4 + 1×2^-5+1×2^-6+0×2^-7+0×2^-7

次に、「0×2^n」や「0×2^-n」など、「0×何か」になっている部分を削ります。「0×何か」は「0」なので、足す必要はありません。

0×2^7+0×2^6+1×2^5+0×2^4 + 1×2^3+0×2^2+1×2^1+0×2^0 + 0×2^-1+1×2^-2+0×2^-3+0×2^-4 + 1×2^-5+1×2^-6+0×2^-7+0×2^-7

1×2^5+1×2^3+1×2^1+1×2^-2+1×2^-5+1×2^-6

最後に「1×」を削ります。「何かに1を掛けても値は変わらない」ので「1×」を削っても式の値は変わりません。

1×2^5+1×2^3+1×2^1+1×2^-2+1×2^-5+1×2^-6

2^5+2^3+2^1+2^-2+2^-5+2^-6

答え:2^5+2^3+2^1+2^-2+2^-5+2^-6

>こんな流れでやっているのですが、これよりも効率的な解き方ありますか?

0=>0000
1=>0001
2=>0010
3=>0011
4=>0100
5=>0101
6=>0110
7=>0111
8=>1000
9=>1001
A=>1010
B=>1011
C=>1100
D=>1101
E=>1110
F=>1111

の16通りのビットパターンを全部暗記する。

暗記して「16進→2進」の変換が簡単に出来るようになれば、あとは「思考する必要がない単純作業」で式に変換できます。
    • good
    • 0

「効率的な解き方」は問題によりけりだけど, その問題がこれでは全くわからんので考えようもない.



ついでにいうとその「計算の仕方」でなにをしているのかさっぱり分からない. 「16*2 < 2^5」は「16*2 が 2^5 より小さい」って意味だよね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!