浮動小数点型のメモ
浮動小数点型についての個人的メモです。大学のレポートに出てきて、応用情報技術者試験にも必要なので、ちょっとまとめてみます。
- コンピュータは実数を浮動小数点型で表す
- 浮動小数点型には32bit単精度と64bit倍精度がある
- C言語では、float型が32bit単精度、double型が64bit倍精度
- 浮動小数点型では、符号、仮数、基数、指数の4つの部分で実数を表す
- 浮動小数点型には32bit単精度と64bit倍精度がある
10進数を浮動小数点型で表現する
例えば、-0.375(10進数)を32bit単精度浮動小数点型で表現してみます。符号部1bit、指数部8bit、仮数部23bitで、指数部は2の補数で表現します。
- まず符号を分割する
- 負の数なので、符号部は1
- 絶対値を2進数で表現する
- 0.375 (10進数) = 0.011 (2進数)
- 一の位が1で残りは小数点以下になるようにする
- 0.011 = 1.1 * 2 ^ (-2)
- 小数点以下を仮数部とし、ビットの幅(23bit)に足りない分だけ0を右に付け加える
- 仮数部 11000000000000000000000
- 正規化した時の指数-2を2の補数で表し、指数部とする
- 2を8bitの2進数で表し、ビット反転した後、1を加える
- 00000010 → 11111101 → 11111110
- 指数部 11111110
- 2を8bitの2進数で表し、ビット反転した後、1を加える
- 符号部、指数部、仮数部の順に左からつなげる
- 11111111011000000000000000000000