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

度々すみません。ご協力お願いします。

2進数から8進数への変換ですが以下の2進数重み対応表の意味がいまいち分かりません。

問題:
2進数 1100.01の8進数への変換を次の手順で行う。
(1)3桁づつ区切る:
(2)2進数の重み:
(3)掛けて足す:
(4)8進数:
001 100 . 010 ※3桁無い場合は0を補う
421 421 . 421 ←2進数重み対応表
001 400 . 020 ※掛けて足す
回答:14.1

質問:
a.少数以下の重み対応表.421の意味が不明です。
 (10進法だと、.10^-1, 10^-2・・・は分かりましたが・・)
b.同様に2進数から16進数の場合の小数以下.8421も不明です。

簡単な質問かもしれませんが何卒宜しくご教授お願いします。

A 回答 (3件)

>回答:14.1


間違いです。

書くとすれば「解答:14.2」だろうね。

質問:a
>a.少数以下の重み対応表.421の意味が不明です。
.010=.010×8×(8^-1)
=010.×(8^-1)
8進の小数点第1位の2進表現が「010」で、2進数ですから上位から「421」の桁の重みがあります。
=(0×4+1×2+0×1)×(8^-1)
これば8進の小数第1位の1桁が2進「010」で重みが順に「4,2,1」であることを表しています。
=2×(8^-1)
これは
(8^-1)は8進の小数第1位の桁が2である
ことを表しています。

質問:b
たとえば以下のように小数部を16倍して考えれば、整数部と同様に、
重みが8421となることが理解できるかと思います。

.0101=.0101×16×(16^-1)
=0101.×(16^-1)
=(0×8+1×4+0×2+1×1)×(16^-1)
=(4+1)×(16^-1)
=5×(16^-1)
=0.5 (16進)
    • good
    • 0

2進→8進 にせよ、2進→16進 にせよ、


新たな基数が元の基数の冪であるような基数変換は、
桁を区切って、区切りごとに自然数として変換
すればよいです。

3桁づつ区切って… というのは、
1100.01 [2]
= (1 [2])×(1000 [2]) + (100 [2]) + (010 [2])/(1000 [2])
= (1 [8])×(10 [8]) + (4 [8]) + (2 [8])/(10 [8])
= 14.2 [8]
と計算しているのです。

区切りごとに
1 [2] = 1 [8],
100 [2] = 4 [8],
10 [2] = 2 [8]
と計算するとき、2進数の各桁が「何の位」かを考えればよい。
10進法と同様に、1の位の左が2^1の位、その左が2^2の位です。
    • good
    • 0

.1(b)=2^-1=4×8^-1=8×16^-1


.01(b)=2^-2=2×8^-1=4×16^-1
.001(b)=2^-3=1×8^-1=2×16^-1
.0001(b)=2^-4=4×8^-2=1×16^-1
※(b)は2進数の意味
    • good
    • 0

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