ミスチルの大名曲の数々が配信決定!! 31日間無料!!【PR】

小数点が混じった2進数の11.11を8進数に変換するさい、2進数の11.11をいったん10進数に変換します。因みに10進数にすると3.75になります。そしてここで質問です。
この3.75を下一桁から求めるやり方で計算していくと、まず8進数にしたいのだから3.75/8なのですが
ここから先をどうしてよいのかが分からないのです。この式そのものの答えは、0.46875ですが、馬鹿正直に割り切るべきですが、それともどこかで計算を止めるべきですか。
因みに変換ツールで答えを出すと11.11は、03.60となりますが、0.46875は、見る影もありません。どうすれば、3.75/8から先述の答えである03.60にたどり着けますか。

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

  • うーん・・・

    ご回答有難うございます。
    εというしるしは、イプシロンというものみたいなのですが、ネットで暫く調べてみても、回答文のイプシロンが下記サイトのイプシロンのどれに合致するのかがよくわかりません。
    https://ja.wikipedia.org/wiki/%CE%95

    3.75は、10進数で10進数から別のn進数を求めるときは、
    10進数の数値/n^m=商、余
    余/n^m-1...
    或いは、
    10進数の数値/別のn進数=商、余
    商/別のn進数...
    上記のような除算していたような気がするのですが、イプシロン印も相まってよく理解できませんでした。

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/11/02 19:47
  • うーん・・・

    ご回答有難うございます。
    >>=1*2^1+1*2^0+1*2^(-1)+1*2^(-2)=3.75
    ここまでの式は理解できるのですが、そこから下の式は、どういうロジックで作られた式なのか理解できませんでした。
    「3*8^0+8*(1*2^(-1)+1*2^(-2))/8」の「3*8^0+...」の3は、3.75の3ですか。と、すると
    「8*(1*2^(-1)+1*2^(-2))/8」は、.75を指していることになりますか?

    No.4の回答に寄せられた補足コメントです。 補足日時:2016/11/02 19:53

このQ&Aに関連する最新のQ&A

A 回答 (7件)

2進数から8進数にするだけなら#1の方の方法が一番良い。

10進数に一度変換するのは手間がかかりすぎる。

それでもあえて10進数の3.75を8進数に変換する方法を説明します。
まず、整数部分と小数部分に分けます。3と0.75に分けます。
整数部分の3はそのままで良いでしょう。小数部分を8進数にするにはまず8倍します。
0.75*8=6
これで小数点以下の1桁目は"6"となります。また、この計算で小数部分が出てこなかったここで計算はおしまい。

たとえば10進数の"0.3"を8進数に変換するには
0.3*8=2.4 1桁目は"2" 次に2.4の小数部分を8倍して
0.4*8=3.2 2桁目は"3" 同様に
0.2*8=1.6 3桁目は"1"
0.6*8=4.8 4桁目は"4"
0.8*8=6.4 5桁目は"6" ここで1桁目の計算の際に出てきた0.4が残りますのでこれからは循環となります。

よって
0.3(10進)=0.2314631463146...(8進)
となります。
    • good
    • 1

No.2です。

ありゃりゃ、「補足」に書かれたことについて。

>εというしるしは、イプシロンというものみたいなのですが、ネットで暫く調べてみても、回答文のイプシロンが下記サイトのイプシロンのどれに合致するのかがよくわかりません。

単に、「もしも、8進数の4ケタ n1, n2, n3, n4 だけで表わせない「はんぱ分」があるかもしれないので、これを仮に「 ε
」と書いておいて、あとで ε=0 を確認した」というだけのことです。

この式↓が何を意味しているのか、何をしようとしているものなのか、全く理解できていないということですね?
  n1 * 8^1 + n2 * 8^0 + n3 * 8^(-1) + n4 * 8^(-2) + ε

「n進数」とはどういうことなのか、その「定義」を理解していないのではありませんか?

こういう「本質的でない」部分と、「重要で本質的な部分」の区別がついていないのが、質問者さん最大の問題のように思います。
    • good
    • 0

なんというか, 「位取り記数法」という考え方を理解できていないように思えるんだが, どうだろうか.

    • good
    • 0

2進数の11.11


=1*2^1+1*2^0+1*2^(-1)+1*2^(-2)
=3*8^0+8*(1*2^(-1)+1*2^(-2))/8
=3*8^0+6*8^(-1)
=3.6 (8進数での表示)
この回答への補足あり
    • good
    • 0

>どうすれば、3.75/8から先述の答えである03.60にたどり着けますか。


とりあえずココに対して…。

0.75は分数にすると3/4。
分母を8にすると6/8。

・・・
小数点より上の数まで一緒に割ってどうする。
    • good
    • 0

No.1です。



ちなみに「2進数の11.11」であれば、「8進法の03.60」と書くのは不自然です。
「8進法の03.60」になるのは、「2進数の 000 011.110 000」です。分かりますか?

さらに、ちなみに、「いったん10進数に変換」するのであれば、
  2進数の11.11
→ 1*2^1 + 1*2^0 + 1*2^(-1) + 1*2^(-2)
 = 2 + 1 + 0.5 + 0.25
 = 3.75      ①

これを8進数にするには、たとえば
 n1 * 8^1 + n2 * 8^0 + n3 * 8^(-1) + n4 * 8^(-2) + ε
とおいてみれば、これは
 n1 * 8 + n2 + n3 * 0.125 + n4 * (1/64) + ε
ということですから、①との比較から
 n1 = 0
 n2 = 3
 n3 = 6
 n4 = 0
  ε = 0
で、8進数の「3.6」となることとが分かります。
この回答への補足あり
    • good
    • 0

2進数→8進数なら、わざわざ10進数にしなくとも、「2進数の3桁ごとにまとめて、8進数の1桁にする」という操作で可能ですよ。



コンピュータ関係の勉強をしたことがあれば、2進数←→16進数の変換はよくやりますよね?

2進数の11.11 = 2進数の 011.110
 ↓
8進数の 3.6
・2進数の 011 → 8進数の 3
・2進数の 0.110 → 8進数の 0.6 (2進数の 110 → 8進数の 6)
ですから。
    • good
    • 1

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q進数の小数点をどう変換するのか

現在進数の小数点で詰まってます

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進数
この[通り]の場合の小数点の出し方を何方かご存知ないですか?
無ければ無い、あればあるで教えて頂けないでしょうか
扱う数字はいくつでも勿論結構です、宜しく御願いします

Aベストアンサー

基本的に相互変換可能です。

> 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進数の変換に関しても、それと同じことをやっています。

基本的に相互変換可能です。

> 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桁に対...続きを読む

Q8進数から2進数に変換の

8進数223を2進数に変換したいのですが、
まず223を10進数に変換(2×8^2+2×8+3×1=147)→それから2進数に変換→答えは10010011
という方法しかないのでしょうか?
10進数に変換せず、直接2進数にする方法はあるのでしょうか?

Aベストアンサー

8進数の1桁を2進数の3桁に変更する。

(223)8の場合
2→010
2→010
3→011

よって、
(010010011)2

必要に応じ、上位の0を削除する

Q2進数から8進数に変換の

答えが分からず困っています。どなたか教えてください!
2進数0.1101は8進数ではいくつになるのでしょうか?
また、この計算をしてくれる計算機のサイトがあれば教えてください。

Aベストアンサー

2進数の0.1101 は、下記の様な意味になりますね。

(1 * 1/2) + (1 * 1/4) + (0 * 1/8) + (1 * 1/16)

これを下記の様な、8進数の形にすれば良い訳です。

(? * 1/8) + (? * 1/64) + (? * 1/512) ・・・

実際にやってみますと、

(1 * 1/2) + (1 * 1/4) + (0 * 1/8) + (1 * 1/16) = 13/16
13/16 = (6 * 1/8) + (4 * 1/64)

ということで、0.64 になります。

2進数を3桁ずつに分けると、それぞれが8進数の1桁に対応しますので、3桁ずつに分けて計算すると楽かと。

0.1101 → 000 | 110 | 100

000(2進) → 0(8進)
110(2進) → 4 + 2 + 0 → 6(8進)
100(2進) → 4 + 0 + 0 → 4(8進)

Q10進数から8進数へ

同じような質問が多々ありますが、どうしてもわからないので教えてください!!
10進数の12.3を8進数に変換するやり方がわかりません。12は14になるのがわかるのですが、0.3はどうすればいいのでしょう。。。

Aベストアンサー

12.3などといわず、123.4でやってみましょう。
123÷8=15...3↑(この整数部分をさらに8で割ります)
 15÷8= 1...7|(この整数部分をさらに8で割ります)
  1÷8= 0...1|(ここで計算は終わりです)
よって123の八進表示は―→の順に読んで173となります。

0.4の部分は÷ではなく、×で計算します。
0.4×8=3.2|(この小数部分にさらに8を乗じます)
0.2×8=1.6|(この小数部分にさらに8を乗じます)
0.6×8=4.8|(この小数部分にさらに8を乗じます)
0.8×8=6.4|(この小数部分にさらに8を乗じます)
0.4×8=3.2↓(ここからは繰り返しになります)
よって0.4の八進表示は―→の順に読んで0.3146314631463146…という循環小数になります。整数部と小数部の算出は全く逆の計算になっていることに気がついてください。

Q16進小数0.Cを10進数小数に変換したら0.75になりますがわたし自

16進小数0.Cを10進数小数に変換したら0.75になりますがわたし自身良く解りません
詳しくおしえていただけませんでしょうかm(._.)m

Aベストアンサー

10進数で「0.1」と書くと、
小数点より下位の「1」の意味は「10分の1の量が1コ」という意味ですよね。
10分の1の量が1個だと 0.1
10分の1の量が2個だと 0.2
と続けて
10分の1の量が9個だと 0.9
じゃあ
10分の1の量が10個だと?

小数点の右側の場所では表現できないので、左側の場所を使って
1.0
と書きます。
これが10進法です。


16進数で小数点を含む数字の意味を考えると...
16進数「0.C」は、小数点の右側の「C」は「16分の1の量がC個(=12コ)」という意味です。
16分の12は約分できるので、してみると4分の3、10進数の小数で言えば=0.75です。

そういう事です。

Q16進数から10進数への変換

16進数の77が16×14+7だということはわかるのですが、少し複雑になるとわからなくなります。
例えば以下のような場合です。

「16進数で5D2Cは
16の三乗×5+16の二乗×13+16×2+12
とあらわされます。」

なぜ、16の三乗や、16の二乗をする必要があるのでしょうか?

5桁になるとおそらく16の4乗をする必要がありそうですが、
宜しくお願いします。

Aベストアンサー

5桁で16の4乗、というのは正しいです。
この説明は下でされているので省きます。

16進数は数が大きいので、扱いが面倒、と思われるかもしれないので、
簡単な2進数への変換法を書いておきます。

16進数で5D2Cの場合
 1、各桁を2進数に変換する
 ⇒5D2C = 0101 | 1101 | 0010 | 1100
 2、変換したものをそのまま結合する
 ⇒ 0101 | 1101 | 0010 | 1100 ⇒  0101110100101100

 これで、2進数になります。
2のN乗の方が計算が楽だと思いますので、10進数にする場合は
使ってみてはいかがでしょうか?
(8進数の場合も同様にできます)

Qエクセル DEC2BIN 範囲外数値の演算

エクセルの2進数変換関数の「DEC2BIN」について、

-32768から32767の範囲の数値を符号付の16bitへ変換したく、
調べたところDEC2BIN関数にたどり着いたのですが、
-512から511の範囲外では、使用できず、エラーが返ってきます。

何か良い解決策は、ないでしょうか?
初めての質問となりますが、よろしくお願いいたします。

Aベストアンサー

#3,4です。

=RIGHT("0000000000000000"&DEC2BIN(INT(A1/256),8)&DEC2BIN(MOD(A1,256),8),16)

でどうでしよう。

Q10進数の14.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか?

10進数の14.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか?
10進数の-7.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか?
計算方法を教えてください。

Aベストアンサー

14.5を符号と指数と仮数に分けます。
符号は正の数なので符号は0
次に14.5を符号無し2進数に変換すると
1110.1
小数点を左に移動させて1だけ残すと
1110.1=1.1101*2^3
仮数は23ビットで小数点より右側だけなので、足りない分を0でうめて
11010000000000000000000
指数の3を127でバイアスするので
3+127=130
これを2進数に直すと
10000010
全て合わせると、
01000001011010000000000000000000
で、32ビットの2進数に変換できました。
同じように、-7.5を変換すると、
符号は負の数なので1
-7.5を符号無し2進数に変換すると、
 111.1
=1.111*2^2
なので、仮数は
11100000000000000000000
指数の2を127でバイアスすると
2+127=129
これを2進数に直すと
10000001
全て合わせると
11000000111100000000000000000000
になります。
64ビットの場合は、指数のバイアスを127から1023にし、仮数の23ビットを52ビットまで増やせばOKです。

14.5を符号と指数と仮数に分けます。
符号は正の数なので符号は0
次に14.5を符号無し2進数に変換すると
1110.1
小数点を左に移動させて1だけ残すと
1110.1=1.1101*2^3
仮数は23ビットで小数点より右側だけなので、足りない分を0でうめて
11010000000000000000000
指数の3を127でバイアスするので
3+127=130
これを2進数に直すと
10000010
全て合わせると、
01000001011010000000000000000000
で、32ビットの2進数に変換できました。
同じように、-7.5を変換すると、
符号は負の数なので1
-7.5を...続きを読む

Q10進数をBCDに変換する方法

10進数から2進化10進数(BCD)に変換するところで疑問があります。
たとえば、10進数の3846をBCDに変換する場合答えはどのようになりますか?

私なりに考えたところまでを示しますが、答えがわかりません。
どこに考え方の間違いがあるのでしょうか?

まず、3846を2進数に変換しました。
3846 → 0000111100000110 (2進数)となります。

ここからBCDに変換する場合、4ビットずつを1つと考えて数字を表現するので、上記の2進数の頭から4つずつ分けて考えると

1つ目 0000
2つ目 1111
3つ目 0000
4つ目 0110
の4つにわけました。

続いて、それぞれを10進化しました。
1つ目 0000 → 0
2つ目 1111 → 15
3つ目 0000 → 0
4つ目 0110 → 6

ここで疑問が出てきます。
2つ目のところで、1111を10進化すると15となってしまい桁上りが生じます。
この場合どのように処理するのが良いのでしょうか?

どなたかご教授ください。

Aベストアンサー

BCDに変換する際、数値全体を2進数に変換する必要はありません。
各桁を構成している数値を2進数に変換して、合体させればよいです。
10進数の3846をBCDに変換するのであれば、
3 → 0011
8 → 1000
4 → 0100
6 → 0110
より、
0011 1000 0100 0110
です。

Q2進数の割り算が分かりません・・・。

2進数の割り算が分かりません・・・。
授業でいきなり出てきて大変に戸惑っています。
10010➗11(2進数)
の解き方を教えてください。
よろしくお願いします・・・!

Aベストアンサー

2進数の場合の割り算は引く事が出来るか?をフラグを立てていく感じになります。


人気Q&Aランキング