
現在進数の小数点で詰まってます
2進数⇒10進数へ変換するときは
11.01011⇒
1*2~1+1*2~0+0*2~-1+1*2~-2+0*2~-3+1*2~-4+1*2~5
2 +1 +0 +0.25 +0.125 +0.625 +0.3125
3+1.3125
4.3125
2進数⇒16進数へ変換するときは
11.01011⇒
B.0 |8+0+2+1|
B.0B
で良いと思ってます(間違ってたらすいません)
ここで本題なんですが、小数点を含んだ進数で
2進数⇒8進数
8進数⇒2進数
10進数⇒2進数
16進数⇒2進数
この[通り]の場合の小数点の出し方を何方かご存知ないですか?
無ければ無い、あればあるで教えて頂けないでしょうか
扱う数字はいくつでも勿論結構です、宜しく御願いします
No.3ベストアンサー
- 回答日時:
基本的に相互変換可能です。
> 2進数⇒10進数へ変換するときは
> 11.01011⇒
> 1*2~1+1*2~0+0*2~-1+1*2~-2+0*2~-3+1*2~-4+1*2~5
> 2 +1 +0 +0.25 +0.125 +0.625 +0.3125
> 3+1.3125
> 4.3125
計算結果が違います。
小数点以下の数字が1を超えることはあり得ません。
たぶん3.34375になるはずです。
> 2進数⇒16進数へ変換するときは
> 11.01011⇒
> B.0 |8+0+2+1|
> B.0B
2進数⇒16進数に変換するときは、小数点から4桁ずつに区切って考えます。
(2^4 = 16なので、2進数の4桁が16進数の1桁に対応する)
2進数の11.01011を16進数に直すには次のようにします。
(何もないところには0を埋めます)
| 0011. | 0101 | 1000 |
2進数の0011に相当する16進数は3
2進数の0101に相当する16進数は5
2進数の1000に相当する16進数は8
2進数の11.01011は、16進数の3.58
10進数に直してみると、
3 + 5/16 + 8/256 = 3.34375
となり、元の10進数とも一致します。
16進数⇒2進数は逆の操作で行えます。
16進数3.58を1桁ずつに区切って、その数字に対応する4桁の2進数を当てはめればよいです。
16進数の3に相当する2進数は0011
16進数の5に相当する2進数は0101
16進数の8に相当する2進数は1000
つまり16進数の3.58は、2進数の0011.01011000(11.01011)になります。
2進数⇔8進数の相互変換も同様に行えます。
2^3 = 8なので、2進数の3桁が8進数の1桁に対応します。
つまり2進数を8進数に直す時には3桁ずつ区切ればよいです。
> 10進数⇒2進数
10進数小数を2進数小数に直すには、今までの方法とは別の手段を使う必要があります。
例 10進数の0.14を2進数に直す
やり方は、0.14をどんどん2倍し、1の位を見ます。
1の位の数字が、小数点以下の位の数字になります。
(なお、3.14のような整数部分に0以外の数字をもつ数は、
整数部分(3)と小数部分(0.14)に分け、
それぞれ別々に2進数に変換し、最後にくっつけます。)
(1) 0.14を2倍 → .28
繰り上がりがないので、2^(-1)の位は0
(2) 0.28を2倍 → .56
繰り上がりがないので、2^(-2)の位は0
(3) 0.56を2倍 → 1.12
繰り上がりがあったので、2^(-3)の位は1
1の位の数字を除去
(4) 0.12を2倍 → .24
繰り上がりがないので、2^(-4)の位は0
(5) 0.24を2倍 → .48
繰り上がりがないので、2^(-5)の位は0
(6) 0.48を2倍 → .96
繰り上がりがないので、2^(-6)の位は0
(7) 0.96を2倍 → 1.92
繰り上がりがあったので、2^(-7)の位は1
1の位の数字を除去
(8) 0.92を2倍 → 1.84
繰り上がりがあったので、2^(-8)の位は1
1の位の数字を除去
(9) ……
といった感じです。
これは10進数の小数に10をかけて、
小数点を右隣に移すことと同じことをやっています。
2進数なら、2をかければ小数点が右隣に移るので今回は2倍です。
ではなぜ小数点を右隣に移すのか。
それは、少数点を1個ずつ右にずらしていけば、
1の位に小数点以下の部分の数字が順番に出てくるからです。
例えば3.14に10をかけると31.4です。
1の位を見ると、元の3.14の10^(-1)の位が現れます。
さらに31.4に10をかけると314です。
1の位を見ると、元の3.14の10^(-2)の位が現れます。
今回の10進数⇒2進数の変換に関しても、それと同じことをやっています。
No.4
- 回答日時:
ANo.3です。
10進数⇒2進数の変換方法の例(0.14を2進数に変換する例)の部分を訂正します。
**************************
例 10進数の0.14を2進数に直す
やり方は、0.14をどんどん2倍し、1の位を見ます。
1の位の数字が、小数点以下の位の数字になります。
(なお、3.14のような整数部分に0以外の数字をもつ数は、
整数部分(3)と小数部分(0.14)に分け、
それぞれ別々に2進数に変換し、最後にくっつけます。)
(1) 0.14を2倍 → 0.28
1の位が0なので、2^(-1)の位は0
(2) 0.28を2倍 → 0.56
1の位が0なので、2^(-2)の位は0
(3) 0.56を2倍 → 1.12
1の位が1なので、2^(-3)の位は1
1の位の数字を除去
(4) 0.12を2倍 → 0.24
1の位が0なので、2^(-4)の位は0
(5) 0.24を2倍 → 0.48
1の位が0なので、2^(-5)の位は0
(6) 0.48を2倍 → 0.96
1の位が0なので、2^(-6)の位は0
(7) 0.96を2倍 → 1.92
1の位が1なので、2^(-7)の位は1
1の位の数字を除去
(8) 0.92を2倍 → 1.84
1の位が1なので、2^(-8)の位は1
1の位の数字を除去
(9) ……
**************************
以上です。失礼しました。
なお、手順(3)(7)(8)で1の位の数字(1)を除去して0にしているのは、
不必要な情報を消すためです。
No.2
- 回答日時:
> 11.01011⇒
> 1*2~1+1*2~0+0*2~-1+1*2~-2+0*2~-3+1*2~-4+1*2~5 ×
1*2^1+1*2^0+0*2^(-1)+1*2^(-2)+0*2^(-3)+1*2^(-4)+1*2^(-5)
> 2 +1 +0 +0.25 +0.125 +0.625 +0.3125 ×
2 +1 +0 +0.25 +0 +0.0625 +0.03125
>3+1.3125 ×
3.34375
>4.3125 ×
別解)
11.01011⇒(1101011)/2^5=(64+32+8+2+1)/32=3+11/32=3.34375
> 11.01011⇒
> B.0 |8+0+2+1| ×
(0011 |.0101 | 1000) =3.58
> B.0B ×
4桁区切りは小数点を基準に行う事
> 2進数⇒8進数
小数点の位置を基準に3ビットずつに区切り、それぞれを8進数に変換
> 11.01011⇒(011 |. 010 | 110)=3.26
> 8進数⇒2進数
8進1桁を3ビットの二進数に変換して並べるだけ
> 3.57⇒011.101 111
> 10進数⇒2進数
10.375⇒8+2+0.75/2=8+2+1.5/4=8+2+1/4+1/8=110.011
> 16進数⇒2進数
16進1桁を2進4ビットに直して並べるだけ
A5.3C⇒(1010 0101 . 0011 1100)=(10100101.001111)
No.1
- 回答日時:
計算があっていないようです。
2進数⇒10進数
11.01011
→1*2^1+1*2^0+0*2^(-1)+1*2^(-2)+0*2^(-3)+1*2^(-4)+1*2^(-5)
=2+1+0+0.25+0+0.0625+0.03125=3.34375
2進数⇒16進数
11.01011
→(1*2^1+1*2^0)*16^0+"."+(0*2^3+1*2^2+0*2^1+1*2^0)*16^(-1)+(1*2^3)*16^-2
=(3.58) (=3*16^0+5*16^(-1)+8*16^(-2)=3.34375)
2進を4桁ずつ区切って計算。
何でこんな計算をしているのかわかりませんが、趣味ですか。
もし、コンピュータがらみの計算なら、このような小数点つきの8進や16進の計算は意味がありません。2進の小数点部分の10進変換ができれば十分でしょう。コンピュータの小数点つきの(2進)数値の表現はこれとはちょっと違いますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- 高校 小数の10進数を2進数に変換する方法 2 2023/07/27 23:17
- 数学 これって正しいんじゃないの? 「無理数を小数で表現すると、小数点以下に数字が無限に続きますが、それら 5 2022/05/29 23:56
- 情報処理技術者・Microsoft認定資格 情報技術の問題についてです。 10進数の−36を以下のような16ビットの浮動小数点表示にするといくつ 3 2022/05/21 19:53
- 計算機科学 ビット計算 2 2023/04/16 14:26
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- その他(データベース) 4進数風なバーコードは何ですか? 2 2022/11/28 23:33
- 計算機科学 8ビット浮動小数点数 0 1000 100 を10進法 8ビット浮動小数点数 1 1100 011 3 2022/10/28 08:07
- 数学 すべての自然数とすべての実数を1対1で対応させる(すべての実数を一列に並べる)方法について 3 2023/05/26 17:14
- その他(教育・科学・学問) 10進数からビットフラグの判定 例えば、 11011 というビットフラグが10進数「27」になってい 7 2022/12/07 13:43
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
5進法を10進法への直し方
-
50以下は“50”も入るのですか?
-
16進小数0.Cを10進数小数に変換...
-
Excel 16進数
-
HEX2BIN関数の使い方。
-
dBm/HzからdBm/MHzへの単位変換
-
ユークリッド空間 ユークリッ...
-
対数変換する意味?
-
kwhとMJとの単位の関係
-
偏微分の記号をタイプするため...
-
数学の質問です。 関数f(t)の...
-
小数点が混じった2進数を8進数...
-
16進数 0.5を2進数を変換せよ ...
-
8進数から16進数 16進数から8進数
-
フーリエ変換・逆変換の虚数成...
-
NP完全 素因数分解をSATへ変換する
-
相似変換とユニタリ変換
-
進数の小数点をどう変換するのか
-
範囲内での逆ラプラス変換について
-
単位変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
5進法を10進法への直し方
-
50以下は“50”も入るのですか?
-
16進小数0.Cを10進数小数に変換...
-
偏微分の記号をタイプするため...
-
HEX2BIN関数の使い方。
-
Excel 16進数
-
ヤコビアンが0になってしまう場...
-
dBm/HzからdBm/MHzへの単位変換
-
平行の記号
-
「じじょう」が正しい読み方?
-
EXCELで10進数表記をB...
-
小学4年生の算数(小数)の問題で...
-
8進数から16進数 16進数から8進数
-
フーリエ変換・逆変換の虚数成...
-
小数点が混じった2進数を8進数...
-
dBm→dBμV/mの換算について
-
2進数の1010は、10進数ではいく...
-
10進数の50を2進数で表すといく...
-
=(イコール)の上下に点々があ...
-
Excelにて、時間(8:30等)を数...
おすすめ情報