こんにちは!
明日が楽しみでワクワクしてるちょこひです。

明日は通っている学校の体育祭のような何かがあるんですー!
あんまり運動しないでお菓子ポリポリしてるだけですが
楽しいもんは楽しい。うん。


浮動小数

今回はちょっと久しぶりに基本情報ネタを。 
小数のある数値の保持の方法についてまとめます。

浮動小数。
浮いて動く小数。

これだけ見ると訳がわかりませんが
本当に動くんですー!ほんとにー!

浮動小数に対して固定小数というのもあるんですが
浮動小数表示は固定小数表示に比べて精度が高いという特徴があります。 


まずは固定小数点についてさらっと。

kotei

四角いのはメモリひとつひとつの部屋のイメージです。
矢印のところを小数点と固定しています。

常に小数点の位置が決まっているので
2進数をそのままぶちこめます。


ただ、一つ問題があって。

hainnee


小数点が固定されているせいで、
小さな数を扱う場合は有効桁数が減少して入りきらなくなります

浮動小数は小数点を動かすことで、
より広い範囲の数字を保持する仕組みです。


浮動小数点の仕組み

では浮動小数表示の仕組みについて書いていきます。

まず、保持する数値を以下のように変形します。

kisuu


このとき、M(仮数部)は「0.xxxx」という表示にします。
これを正規化といいます。


725


基数は進数に合わせます。PCの場合は2です。
0.xxxxという表示にしたとき、ずれた桁を指数として保持します。


メモリのイメージは以下です。

memori

数値の正負を保持する符号部(0は正、1は負)
指数を保持する指数部
0.xxxxのxxxxを保持する仮数部 とあらかじめ決めておきます。

今回はそれぞれ1つ、3つ、4つと表現していますが
実際は環境により異なります。


どう保持していくかというと

setumei


こう。

仮数部は上位ビットから順に数字をいれ、空いたところには0を入れます。
こうすることで、先ほどの固定小数点表示よりも有効桁数が確実に増え、
メモリの省略に成功しています。

ちなみに、指数部が負になる場合(-5乗など)は
以前書いた補数表現で指数を保持します。

指数部によって小数点がどこに来るか変わっていくので
小数点がフワフワ移動するイメージです。

 
まとめ


必殺!画像でやっつけ大作戦!
実際これを文章で説明するのは私の語彙では無理でした・・・

画像作りに悪戦苦闘。
イラストレーター、いつになっても慣れない・・・



ちょこひ