ちょっと変わったマニアな作品が集結

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

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

A 回答 (3件)

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



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

よって、
(010010011)2

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

付属の電卓機能を使えば、一発変換しますよ。

    • good
    • 5

基数が中途半端な数字(2の累乗以外)の場合は、質問者様の仰る通りの方法で計算します。


ただし、変換前の基数が2の累乗(4,8,16,32等)であれば話は別です。

基数Nの数値を2進数に変換したときの桁数は、
 (変換後の桁数)=logN (底:2)
で表せます。
で、この(変換後の桁数)は、変換前の基数が2の累乗である限り必ず整数になります。

たとえば、
8進数であれば2進数で3桁(000 ~ 111)、
32進数であれば2進数で5桁(00000 ~ 11111)
といったような具合になります。
    • good
    • 1

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

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

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

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

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

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進)

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

Q小数点が混じった2進数を8進数に変換するやり方

小数点が混じった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にたどり着けますか。

Aベストアンサー

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進)
となります。

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進数の場合も同様にできます)

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…という循環小数になります。整数部と小数部の算出は全く逆の計算になっていることに気がついてください。

Qべき乗

べき乗とは一体なんですか?
ウィキを見ても理解できませんでした。
2の2乗は2×2ですが、
2のマイナス2乗は一体どのような式なのですか?

Aベストアンサー

算数の延長線上だけの概念だけだといまいち理解出来ないですよね。
べき乗って要は指数なんですけど、
そういう難しい話を出来るだけ捨てて、算数の世界で説明出来る位まで掘り下げて説明します。

例えば 10の2乗は100、10の3乗は1000となります。
これを数字の動きに目を合わせてもう一度、書いてみます。
00010.00000 ←これを2乗すると↓
00100.00000 //10という値が左に1つずれた結果が答え

00010.00000 ←これを3乗すると↓
01000.00000 //10という値が左に2つずれた結果が答え

こういう風に表す事が出来ます。
じゃあ、10のマイナス2乗ってなった場合はどうなるのかというと、
00010.00000 ←これを-2乗する↓
00000.01000 //10という値が右に3つずれた結果が答え

という答えになります。
1を基準点として、右や左にいくつずれるか。
これがべき乗なのです。


で、2のべき乗を考えた時は、
全部2進数で考える必要があります。
00010.00000 ←2進数で表した数値の2
00100.00000 ←2乗した結果。数値で言うと4
00010.01000 //-2乗した結果。数値で言うと0.25


これで何となく分かっていただけたでしょうか?
ちなみに37のx乗を計算するみたいな時があったとしたら、
それは37進数で考えるという計算が必要になるのです。

算数の延長線上だけの概念だけだといまいち理解出来ないですよね。
べき乗って要は指数なんですけど、
そういう難しい話を出来るだけ捨てて、算数の世界で説明出来る位まで掘り下げて説明します。

例えば 10の2乗は100、10の3乗は1000となります。
これを数字の動きに目を合わせてもう一度、書いてみます。
00010.00000 ←これを2乗すると↓
00100.00000 //10という値が左に1つずれた結果が答え

00010.00000 ←これを3乗すると↓
01000.00000 //10という値が左に2つずれた結果が答え

こういう風...続きを読む

Q稼働率の解き方・計算式を教えてください。

問題は
ある装置では100日間に合計600分の障害が発生した。
この装置の稼働率を求めなさい。
なお、この装置は毎日10時間稼動している。

答え
ア.0.97
イ.0.98
ウ.0.99

この計算式を教えてください。お願い致します。

Aベストアンサー

装置は毎日10時間稼動で100日なので総稼働時間は


10時間×100日=1000時間

故障しない時間(稼働時間)は
障害600分なので 時間に直すと10時間


稼働時間は1000時間ー10時間=990時間

稼働率は



稼働時間÷総動作時間=990÷1000=0.99

QNullってどういう意味ですか?

プログラミングで「Null」っていうのがよく出てきますけれど

一般的にどういう時に使うものなのか分かりやすく教えていただけませんか?

Aベストアンサー

値が何もないことをさします。
普通に考えると、値がないのであれば「0」でいいじゃないか、
というふうに思ってしまうのですが、
プログラミングの場合は「0」も意味をもつので、
特にNULLと表現します。

例えば、真=1 偽=0 値なし=NULL
という具合。
…真偽が反対だったらゴメンナサイ。

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

Qクロック周波数の計算問題について

クロック周波数に関する問題を解こうとしているのですが、
公式がどうも覚えづらくて仕方ないのですが・・・ 何か良い解き方はないものでしょうか?

【問題】基本情報処理 平成19年 秋
 「 1GHzで動作するCPUがある。このCPUは,機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に約何万命令実行できるか。 」


【公式】
  (1) 1クロックの時間 = 1÷クロック周波数
  (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間
  (3) 1秒間の命令実行回数 = 1÷1命令の実行時間(命令)

---------------------------------------------------------------
【考え】
 公式より、
  (3)の答えを出したければ (2)が必要であり
  (2)の答えを出したければ (1)が必要である。
  
 であるから、先に(1)を求め (2)を求め (3)を最終的に求める。
 という風に解いてはいるのですが、教科書を見ながらだと解ける状態ですが、いざ時間を空けると公式を忘れてしまって、この手の問題が解けないことがあり、困っています。

  何か逆算みたいで、覚えづらいので一度覚えてもすぐに忘れしまうのですが・・・
 
  この問題をとく方法としては、一旦、解き方の流れを把握して、求め方を覚えるしかないでしょうか?


【ふとした疑問】
  この問題をしてふと思ったのですが、クロック周波数の計算事態は、実際にどこでどういう場面で使われるものなのでしょうか? 何だか、ただ問題を解いているようで、ちょっとイメージが浮いている感じがしているのです・・・(汗)
  

クロック周波数に関する問題を解こうとしているのですが、
公式がどうも覚えづらくて仕方ないのですが・・・ 何か良い解き方はないものでしょうか?

【問題】基本情報処理 平成19年 秋
 「 1GHzで動作するCPUがある。このCPUは,機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に約何万命令実行できるか。 」


【公式】
  (1) 1クロックの時間 = 1÷クロック周波数
  (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間
  (3) 1...続きを読む

Aベストアンサー

単純な問題なので解けた方がいいでしょう。公式で解こうとするから、忘れてしまうとか言っているが、公式の意味を考えた方がいい。
「一箱に1[kg]のひき肉が入っている。ひき肉の一粒が0.8[g]だとすると、一箱の中に何粒のひき肉があるか」という問題と同じだ。こんな問題に公式とか何とか言うか。

【公式】
  (1) 1クロックの時間 = 1÷クロック周波数
  (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間
  (3) 1秒間の命令実行回数 = 1÷1命令の実行時間(命令)
だね。
(3)に(2)、(1)を代入していけば、
1秒間の命令実行回数 = 1÷1命令の実行時間=1÷(1命令の実行に必要なクロック数×1クロックの時間)=1÷(1命令の実行に必要なクロック数×(1÷クロック周波数))

すなわち、

1秒間の命令実行回数=クロック周波数÷1命令の実行に必要なクロック数

になる。

言葉で書くとわかりにくいので、記号を使うと、

f:クロック周波数
n:1秒間の命令実行回数
t1:1命令の実行時間
c1:1命令の実行に必要なクロック数
t:1クロックの時間


t=1/f・・・(1)
t1=c1*t・・・(2)
n=1/t1・・・(3)
=1/(c1*t)=1/(c1*1/f)=f/c1

ついでに、答えまで書くと、

n=1*10^9/0.8=1.25*10^9

でしょう。

単純な問題なので解けた方がいいでしょう。公式で解こうとするから、忘れてしまうとか言っているが、公式の意味を考えた方がいい。
「一箱に1[kg]のひき肉が入っている。ひき肉の一粒が0.8[g]だとすると、一箱の中に何粒のひき肉があるか」という問題と同じだ。こんな問題に公式とか何とか言うか。

【公式】
  (1) 1クロックの時間 = 1÷クロック周波数
  (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間
  (3) 1秒間の命令実行回数 = 1÷1命令の実行時間(命令)
だ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング