- ベストアンサー
シフト演算
2進数 ( 00110000)を1 / 5 倍しなさい。 ( 00110000) × ( 2^-2 + 2^x ) xの部分がわかりません、x とそのあとの解き方を教えてください。 5倍なら ( 00110000) × ( 2^2 + 2^0 ) だとわかるのですが、 1 / 5 倍 や 1 / 9 倍は 5倍の2^0にあたる部分はどうすればいいんでしょうか?
- みんなの回答 (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)+...
その他の回答 (2)
- rabbit_cat
- ベストアンサー率40% (829/2062)
誤植がありました。 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 + … でした。
お礼
回答ありがとうございました。
- rabbit_cat
- ベストアンサー率40% (829/2062)
そんな記法は見たことないですが、 多分、 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桁ずつシフトしながら足せっことになりますが。
お礼
回答ありがとうございました。