「夫を成功」へ導く妻の秘訣 座談会

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

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

A 回答 (4件)

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

10進法→n進法の小数変換は、10進数の小数部分にnをかけて、整数部分を読み、答えの小数部分だけを取り出してまたnをかけ、答えが『○○.0』になったら計算終了で、出てきた整数部分を順に読めばOKです。


ただし、必ずしも『○○.0』にはなりません。nの逆数の累乗の和で示せない小数は表現できません。

今回の場合、
0.3*8 = 2.4 → 整数部分は2。小数部分は0.4。
0.4*8 = 3.2 → 整数部分は3。小数部分は0.2。
0.2*8 = 1.6 → 整数部分は1。小数部分は0.6。
・・・
と続けていくわけですが、これは計算が終わりませんね・・・有限桁数では表現不可能かと思います。どこかで値を丸めましょう。
なので、今回は『14.231・・・』だと思われます。

割り切れる時は以下のようになりますよ。
○10進数の 0.265625 を8進数に直す
0.265625*8 = 1.125 → 整数部分は2。小数部分は0.125。
0.125*8 = 1.0 → 整数部分は1。小数部分は0。
小数部分が0なので計算終了となり、答えは『0.21』となります。
    • good
    • 2

プログラムというよりは、数学の問題ですが…。


十進法の「0.3」は「3×(1/10)」なので、八進法に直すときは、

「A×(1/8)+B×(1/8)^2+C×(1/8)^3+D×(1/8)^4+…」

という形にして、それを「0.ABCD…」と並べます。
具体的な計算の仕方は、以下サイトを参照してください。
ちなみに、答えは循環小数になります。(割り切れません)

http://ja.wikipedia.org/wiki/%E4%BD%8D%E5%8F%96% …
    • good
    • 0

普通に考えたらそのまま14.3でいいんじゃないですか?



ただ繰り上がる時に0.7の次に1になるんじゃないの?

個人的な意見ですが・・・

参考URL:http://e-words.jp/w/8E980B2E695B0.html
    • good
    • 0

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

1÷0の答え」に関するQ&A: 概数と四捨五入

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

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

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

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小数点が混じった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進)
となります。

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を削除する

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です。

そういう事です。

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

Qlim[n→∞](1-1/n)^n=1/e について

こんにちは

lim[n→∞](1+1/n)^n=e
が成り立つことは簡単に示せるのですが、
lim[n→∞](1-1/n)^n=1/e
となることの証明はどのようにすればいいのでしょうか?
ご存知の方がいらっしゃいましたらご回答よろしくお願いします。

Aベストアンサー

e=lim(1+t)^(1/t)   〔t→0〕
がeの定義なので、(t→+0でもt→-0でもOK)
-1/n=tとおきます。

n→∞のとき、t→-0なので、
(与式)=lim(1+t)^(-1/t)   〔t→-0〕

これを変形すると、
=lim{(1+t)^(1/t)}^-1   〔t→-0〕
=e^-1
=1/e

高校の範囲なら、この証明で大丈夫です。

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ベストアンサー

まず、f(x)=1/(x(log(x)-1))とおきます。

x>eのとき、f(x)は滑らかで単調減少なので、
f(n)>ʃ[x=n..n+1] f(x)dx
(ここで右辺の積分はnからn+1までの定積分を表すものとします)

よってN≧4のとき、
Σ[n=3..N-1] f(n) >ʃ[x=3..N] f(x)dx
となります。(※)

右辺の積分を評価するために、x=e^tと置き換えると、

ʃ[x=3..N] f(x)dx
=ʃ[x=log3..logN] 1/(t-1)dt
=log(log(N)-1)-log(log(3)-1)

と計算出来ます。

さて、Nを十分大きくとるとこの積分値は幾らでも大きくなる(例えば、N=2^(1+2^m)ととるとlog(log(N)-1)=mになります)ので、(※)の不等式より、Nを十分大きくとればΣ[n=3..N-1] f(n)は幾らでも大きくできることになります。

よって、lim[n→∞](Σ[n=3..N-1] f(n)) は発散することが分かります。

Qニュートン法を使って解を求めるC言語プログラム

C言語を使って y=x^2-4x のyの解をニュートン法を使って求める
プログラムを作る課題を出されたんですが、ニュートン法が良く分かっていないので、いろいろ調べたり、人に聞いたりしたところ
#include<stdio.h>
#include<math.h>
void main()
{
int counter=0;
double an,g,f,sh=0.0001;
printf("初期値を入力して下さい==>");
scanf("%ld",&an);
do{
g=(an*an)/(2*an-4);
f=2*an-4;
counter++;
}while(fabs(f)>sh);
printf("反復回数 %d 回 y=%lf \n",counter,g);
}
でプログラムがこんな感じになったんですが、結局ニュートン法がどうなのかがわかりません。 なんか微分とかやるとか言われたんですが、工業系の学校で数学の授業が無いので微分についてがわかりません。
このプログラムは、コンパイルはできるんですが、動きません。
ニュートン法についてよくわからないのでどこが間違ってるかわかりません。 ニュートン法についてできるだけ分かりやすく解説してほしいです。

C言語を使って y=x^2-4x のyの解をニュートン法を使って求める
プログラムを作る課題を出されたんですが、ニュートン法が良く分かっていないので、いろいろ調べたり、人に聞いたりしたところ
#include<stdio.h>
#include<math.h>
void main()
{
int counter=0;
double an,g,f,sh=0.0001;
printf("初期値を入力して下さい==>");
scanf("%ld",&an);
do{
g=(an*an)/(2*an-4);
f=2*an-4;
counter++;
}while(fabs(f)>sh);
printf("反復回数 %d 回 y=%lf \n",counter,g);
}
でプログラムがこんな感...続きを読む

Aベストアンサー

ニュートン法を理解するには、せめて微分の初歩の初歩は理解して下さい。
とりあえず、必要なところだけ。

y=x^2-4x
の解をもとめるには、次のようにします。
計算途中の近似解をa(n)とすると、それを元に得られる、より精度の良い近似解a(n+1)は、
a(n+1)=(a(n)*a(n))/(2*a(n)-4)
として求められます。(ニュートン法の理論から)
これを繰り返していって、
|a(n+1)-a(n)| < 0.0001
となったときに、十分精度の良い解が得られたと判断し、計算を終了します。
(計算終了の閾値0.0001は提示されたプログラムから取りました。)

プログラムの間違いは、下記の2点。
誤:scanf("%ld",&an);
正:scanf("%lf",&an);

誤:f=2*an-4;
正:f=g-an; an=g;

上記を修正し、初期値が2より大きい場合は4.000000が、初期値が2未満のときは
0.000000が求められることを確かめて下さい。

Q16進数を10進数に簡単に変換する関数は?

16進数を10進数に簡単に変換する関数は何かありますか?
もしご存知でしたら教えていただけないでしょうか?

例えば、3BDF8という16進数を10進数に変換したいと思っています。

Aベストアンサー

C言語のプログラム内では、保持している数値にn進数という概念はなく
文字列化するときに初めて考えるものです。

int n; // <- このnは何進数でもない

ご質問を以下のように解釈してサンプルを書いてみました。

例えば、3BDF8という16進数(の文字列)を10進数(の文字列)に変換したいと思っています。


$ cat test.c
#include <stdio.h>

int main(int argc, char *argv[])
{
int num;
sscanf(argv[1], "%x", &num);
printf("%d\n", num);
}

$ ./a.out 3BDF8
245240

いかがでしょうか。


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

人気Q&Aランキング