ホーム » 2013 » 5月 » 07

日別アーカイブ: 2013年5月7日

2013年5月
« 4月   6月 »
 1234
567891011
12131415161718
19202122232425
262728293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

浮動小数点とN進数

前回の授業で話せなかった浮動小数点の話の後、N進数について説明し 演習などを行う。

浮動小数点の扱い

浮動小数点で扱える数値の範囲についても解説。 科学技術計算などで小数点以下のデータを扱う場合、float(単精度実数),double(倍精度実数) を利用する。この場合、数値は仮数部と指数部で扱うことを説明。

符号(s) 仮数部(e) 指数部(d) 意味
float 1bit 8bit 23bit
double 1bit 11bit 52bit

float型は、小数を32bitのデータで扱い、double型は64bitで扱う。このため、以下の様な プログラムを書くと、異常な値が求まるため注意が必要。

double x ;
scanf( "%f" , &x ) ; // 3を入力
printf( "%f" , x ) ; // 3は表示されない。
// double型では"%lf"を使う。

N進数

N進数の取扱いということで、 整数部はNで割った余りを下の桁から並べる方法と、 小数部はNをかけて整数部を書き並べる方法について説明する。 例として、0.1)10を2進数に変換すると無限小数になることなども説明。

さらに配布資料を元に、ASCIIコード表や文字コードを使った計算例などを示す。 特に、8進数がC言語では、0123 といった0で始まる数字で表すこと、 16進数が、0x123 といった0xで始まる数字で表すことを説明。 さらに、printfなどのフォーマット指定では、
%d(10進数),%o(8進数),%x(16進数),
%f(float型/小数点形式),%e(float型/指数形式),%g(%f,%eの分かりやすい書式を利用)
といった話を説明する。

来週は、atoi() や itoa() を説明して演習を行う予定。