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になるよ
誤差のお話
- 浮動小数点は10進数の少数を含む数を2進数で表現しようとするよ
- だから2進数で表現できない少数(循環小数になる)はうまく表せないよ
- だけどそれでは困るから丸めてある程度の数にするよ
- そうするとたまに誤差が生まれるよ
- 誤差が生まれると困るときは整数にしてそれが10^-nだよってやつを使うよ
- これがBCDとかBigDecimalとかいうやつだよ
最後に
学習中の自分用に書いたのでめちゃくちゃ間違ってるかもしれないので温かく見守ってください(?)