プロが教える店舗&オフィスのセキュリティ対策術

以下は、小数の4進数(1.23)を一度10進数に変換した後、2進数にしたものです。

10進数に変換
1*4^0+2*(1/4)^1+3*(1/4)^2
=(16/16)+(8/16)+(3/16)
=27/16=1.6875

小数部分を変換
0.6875*2=1.375
0.375*2=0.75
0.75*2=1.5
0.5*2=1

整数部分を変換
1/2=0...1

答え:1.1011

ここで質問が三つあります。

①この答えはあっておりますか。

②10進数に変換する際の式を構成している数字の一つに「(1/4)^1」があります。これは、母数に対しての指数ですが、「(1/4^1)」と記述しなくても良いのでしょうか。

③桁数合わせについてあまり良く理解しておらず(つまり、導き出した答えに)、1.1011を8bit、16bit、32bitで桁合わせするとき、どのように桁を合わせますか。申し訳ありませんが、噛み砕いて説明して下さるとありがたいです。

質問者からの補足コメント

  • ご回答有難うございます。

    >>何かの指定が無ければ、一通りに決めることができません。
    3.1400000
    0003.1400
    000003.14
    どのような指定があった場合、上記のような0が配置されますか?
    例えば、3.14を32ケタにして、という指定があった場合、整数と小数どちらに0をつけますか。
    32ケタになるのだったら、整数だけでも、小数だけでも、或いは整数に一桁だけ、残りは小数で桁を追加する、というやり方でも通用するのでしょうか。

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/03/17 18:18

A 回答 (4件)

普通は


「整数○桁」
とか
「小数○桁」
とか
「整数部のみ」
とか
「小数部のみ」
とかの指定があって、それにあうように小数点の位置を決め、上下に足りない0を書きます。


あるいは「有効数字」を使う場合は、先頭の0でない桁から数え始めて、指定の桁になるまで、下位に0を追加します。
    • good
    • 1

No.1です。

あらら、勘違いしてました。

>>③1.1011を8bit、16bit、32bitで桁合わせするとき、どのように桁を合わせますか。

8bitは2進数の8桁、16bitは2進数の16桁、32bitは2進数の32桁ですね。
桁数合わせは、小数点を基準にして、上向き・下向きにその桁数ずつまとめます。10進法で、4桁ごとに「万」「億」「兆」と位取りするのと同じです。

XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX. YYYYYYYY YYYYYYYY

のように。

No.1の解答では、「進数」と勘違いして回答していました。
「8進数は2進数の3桁ごと、16進数は2進数の4桁ごと、32進数は2進数の5桁ごとにまとめればよいのです。」
と書くべきでした。
    • good
    • 1

③ 10進法と考えは一緒です。


なので、今ある情報だけでは答えは出せません。

8bit というのは、 2進法8桁 の意味です。

10進法の例に置きかえると
「3.14 を 8桁に合わせる」
ということになります。
3.1400000
0003.1400
000003.14
いずれも場合もありえます。

8bitも同様に、何かの指定が無ければ、一通りに決めることができません。
この回答への補足あり
    • good
    • 1

>①この答えはあっておりますか。



合っています。
でも、そもそも、一度10進数に変換するのが無駄です。

4進数の「1.23」
= 1 * 4^0 + 2 * 4^(-1) + 3 * 4^(-2)
= 1 * 2^2 + 2 *2^(-2) + 3 * 2^(-4)
= 1 * 2^2 + 1 *2^(-1) + (2 + 1) * 2^(-4)
= 1 * 2^2 + 1 *2^(-1) + 1 * 2^(-3) + 1 * 2^(-4)
ですから、2進法では
 10.1011
になります。

>②「(1/4^1)」と記述しなくても良いのでしょうか。

どちらでも同じです。桁数との対応をとるには、上のように「4^(-1)」のように書いた方が分かりやすいと思います。

>③1.1011を8bit、16bit、32bitで桁合わせするとき、どのように桁を合わせますか。

8bitは2進数の3桁ごと、16bitは2進数の4桁ごと、32bitは2進数の5桁ごとにまとめるだけだと思いますが。
    • good
    • 1

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