1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

基本情報(よく使う浮動小数点数形式)

Posted at

浮動小数点数の形式でよく使われているものを具体的にみていきます。

32ビット

32ビットの形式例はごくごくシンプルらしいです。
よくわからんので図にしてみます。

0         0000000 . 000000000000000000000000
S           E                M
1ビット     7ビット            24ビット

S:仮数部の符号(0:正、1:負)
E:指数部(2を基数として、負の数は2の補数で表現)
M:仮数部(2進数 絶対値表示)

上記の形式を用いて、10進数の0.375という数字を表すとどうなるか見てみます。
0.375を2進数に直します。

              0.5|0.25|0.125|
各桁の重み|1|  |1/2| 1/4|  1/8|
--------------------------------
2進数    |0| .| 0 | 1  |    1| = 0.011  

算出した2進数0.011を0.Mの形式に正規化

0.011 → 0.11 * 2⁻¹

正規化した数から符号(S)と仮数(M)、指数(E)の値を抜き出す

0.11 * 2⁻¹

符号は0

指数は7ビットの2進数で表しているため
10進数「-1」は
1 ⇨ 00000001となり、2の補数11111111となる。

仮数は11

0     1111111 11    0000000000000000000000
符号   指数    仮数部

上記となります。

IEEE754の形式例とバイアス値

IEEE(米国電子電気技術者協会)により規格化された、IEEE754という
浮動小数点数の形式です。
32ビットや、64ビット、128ビットの形式があるようですが32ビットを例として
みてみます。

32ビットで構成するのは同じのようですが、ビット数の内訳と指数部のあらわし方
正規化の方法が違うようです。

1ビット 8ビット 23ビット
   S    E      M

S:仮数部の符号(0:正、1:負)
E:指数部(2を基数として+127する バイアス127)
M:仮数部(仮数-1の2進小数で表す 1.xxxの小数部)

指数部の使えるビットが1つ増えています。
なんか全くよくわからないので一つ一つ分解していきます。

IEEE754って何よ

浮動小数点って言っても色々あるから、規格揃えて使いましょう
となったらしく、IEEE754を抑えておけば大体大丈夫らしいです。

IEEE754の特徴は「1.xx」の形で正規化することです。上記の仮数部の説明ですね。
2進数「0.011」を正規化すると「0.11 * 2⁻¹」になりますが
IEEE754の場合は「1.1 * 2⁻²」となり1ビット多く保持できるようです。

「バイアス」には「ゲタをはかせる」という意味があります。

実際の指数 バイアス 指数   2進数
-127    +  127   0   00000000
  |     
  0     +  127  127  01111111
  |    
 128    +  127  255  11111111

バイアスにはマイナスの数値を符号なしの2進数で表すために、所定の数(バイアス値)を加えて
表す方法となります。

ではIEEE754の形式を用いて、10進数の0.375という数字をあらわすと
どうなるかみてみます。

0.375を2進数にすると0.011。これを1.Mの形に正規化します。

0.011 → 1.1 * 2⁻²

符号は正の数なので「0」

仮数は1.MのMに当たる部分。そのため「1」

指数は指数の値をバイアス表現したもの。
そのため「-2+127」の結果を2進数にした
「125」⇨「01111101」となる。

Sは0
Eは01111101
Mは1

0011111011000000000000000000000

これで出来上がり!

まとめ

ここら辺は全て慣れですね。
すぐに忘れてしまいそうなので何回か復習しようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?