0
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 3 years have passed since last update.

IEEE754を理解しよう

Last updated at Posted at 2020-07-03

IEEE754ってなに

 浮動小数点の標準的な方式だよ

そもそも浮動小数点ってなに

  • 固定小数点だと桁数が多くなる数が無理なのでできたよ
  • 符号,指数,仮数,基数でもとめるよ
  • 基数は2進数なら絶対2だよ
  • 仮数と指数は相補関係だよ
  • 仮数はx.xxとかを0.xxxとか1.xxxとかにするよ
  • その時にずれた分が指数になるよ

なんで生まれたの

色々浮動小数点の方式がありすぎてめちゃくちゃだったので統一しました。(ex:IBM方式)

どういう風に表現するの

単精度では
符号部(1bit)+指数部(8bit)+仮数部(23bit)だよ 他は難しいから今はやめようね

仮数部の表現

  • 1.xxxxの形にするよ
  • 1の位が1なのがきまってるので処理系による処理変化がなくなるよ
  • 元に戻すときは+1を忘れないようにね

指数部の表現

指数部は+127するよ

なんで

  • 8bitの範囲は16進数00~FFで0~255だよ
  • でもそれだと負の指数を表せないよ
  • だから+127することで0を127にずらして7bitの範囲0~127と符号ビット0=負1=正にするよ
  • だから指数部で示せる範囲は2^-127^2^127になるよ

2020-07-03-03-01.png

誤差のお話

  • 浮動小数点は10進数の少数を含む数を2進数で表現しようとするよ
  • だから2進数で表現できない少数(循環小数になる)はうまく表せないよ
  • だけどそれでは困るから丸めてある程度の数にするよ
  • そうするとたまに誤差が生まれるよ

キャプチャ.PNG

  • 誤差が生まれると困るときは整数にしてそれが10^-nだよってやつを使うよ
    • これがBCDとかBigDecimalとかいうやつだよ

最後に

学習中の自分用に書いたのでめちゃくちゃ間違ってるかもしれないので温かく見守ってください(?)

0
0
1

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
0
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?