计算机中的浮点数表示是计算机组成原理的基础知识,相比于整型的计算机表示,浮点数的计算机表示相对复杂,现将个人学习心得整理如下,以备后用。
一、浮点数的表示
计算机中的浮点数表示格式如下:
S | exp域(E) | frac域(M) |
表达式为
其中S为阶符,用于表示正负符号(取0或1),M为尾数,用于表示精度,E为阶码,它指出的是小数点在数据中的位置,决定了浮点数的表示范围,R为基数,可取2,8,16。本文以R=2为例,说明计算机中浮点数的二进制表示。
C\C++中经常用到两种浮点数:单精度浮点数和双精度浮点数。单精度浮点数: exp域宽度为8bits,frac域宽度为23bits,1位符号位,总共32bits;双精度浮点数:exp域宽度为11bits,frac域宽度为52bits,总共64bits。
二、浮点数的类型
浮点数分为3种类型:规格化浮点数、非规格化浮点数、一些特殊值。
1.规格化浮点数
满足条件:exp