IEEE75原理
要解决问题:目前只有有符号整数,想用这些数表示小数浮点数
解决思路:用有符号数表示阶码,用有符号数表示尾数,用一位表示正负,得到一个缝合怪,可以表示小数
具体规则:
构成:数符---阶码---尾数
细节:阶码用移码表示(因为科学计数法的加减需要获得两个数量级的差距,然后对齐令尾码加减,所以用移码最方便),且全0全1不可用;尾数默认从左向右数到第一个1开始,且省略这个1
表示数:
正常范围浮点数:正常表示
非常小的浮点数:令阶码全0,尾数可以写00010011,扩展了最小位,符号位0/1
无穷大的表示:令阶码全1,尾数全0,符号位0/1(注意这里是阶码,对应的原码应该是分别为-128 -127这个样子)
非数值数(NaN)表示:阶码全1,尾码不全为0,一般0/0或无穷减无穷时出现
具体例子:
短浮点数float阶码为8尾数为23,总位数32
长浮点数double阶码为11,尾数为52,总位数64
临时浮点数long double阶码为15,尾数为64,总位数80
浙公网安备 33010602011771号