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

2進数 ( 00110000)を1 / 5 倍しなさい。

( 00110000) × ( 2^-2 + 2^x )

xの部分がわかりません、x とそのあとの解き方を教えてください。
5倍なら ( 00110000) × ( 2^2 + 2^0 ) だとわかるのですが、
1 / 5 倍 や 1 / 9 倍は 5倍の2^0にあたる部分はどうすればいいんでしょうか?


 

A 回答 (3件)

1/5=(0.0011001100110...)


(0.0011001100110...)x(00110000)
=(0.0011001100110...)x(10000)
+(0.0011001100110...)x(100000)
=(0011.001100110...)
+(0110.011001100...)
=(1001.10011001...)
=(1001)   ←小数以下を切り捨てる
=(00001001) ←8桁(8ビット)にする
↑答

> 1/ 5 倍 や 1 / 9 倍は 5倍の2^0にあたる部分はどうすればいいんで>しょうか?

2倍して整数部を取り出して並べるだけ

1/9の場合
整数部-0(0....)
x2=2/9>整数部-0(0.0...)
x2=4/9>整数部-0(0.00...)
x2=8/9>整数部-0(0.000...)
x2=16/9=1+7/9>整数部-1(0.0001...)
整数部を取り出した残り7/9
x2=14/9=1+5/9>整数部-1(0.00011...)
整数部を取り出した残り5/9
x2=10/9=1+1/9>整数部-1(0.000111...)
整数部を取り出した残り1/9
後は繰り返しなので
1/9=(0.000111000111000111000...)
=2^(-4)+2^(-5)+2^(-6)+2^(-10)+2^(-11)+2^(-12)+...

1/5でも同じやり方でできます。
1/5=(0.001100110011001100...)
=2^(-2)+2^(-3)+2^(-6)+2^(-7)+2^(-10)+2^(-11)+...
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2008/07/22 14:27

誤植がありました。


1/5 = 1/(2^2+1) = 1/2^2/(1+(1/2^2)) = 1/2^2 - 1/2^4 + 1/2^6 - 1/2^8 + 1/2^10 + …
でした。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2008/07/22 14:26

そんな記法は見たことないですが、


多分、
1/5 = 1/(2^2+1) = 1/(1+(1/2^2)) = 1 - 1/2^2 + 1/2^4 - 1/2^6 + 1/2^8 + …
を使えってことなんでしょうか。(テイラー展開)
もしくは、単純に、1/5の2進数展開
1/5 = 1/2^3 + 1/2^4 + 1/2^7 + 1/2^8 + 1/2^11 + 1/2^12 + 1/2^15 + 1/2^16 …
を使えってことか。

上だとすると、(00110000)を2桁ずつシフトしながら足したり引いたりしろ、ってことですし、
下なら、(00110000)×(0.0011)の結果を4桁ずつシフトしながら足せっことになりますが。
    • good
    • 0

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