浮点数能表示的最大整数是多少? | 您所在的位置:网站首页 › float类型的最大值 › 浮点数能表示的最大整数是多少? |
浮点数的表示 以适当的形式将比例因子表示在数据中,让小数点的位置根据需要而浮动。 1.浮点数的表示格式N=(-1)^{S}\times M\times R^{E} S取0或1,决定符号; M为一个二进制小数,称为尾数,一般用定点原码小数表示,位数反映浮点数的精度; E为二进制定点整数,称为阶码或者指数,用移码表示,值反映小数点的实际位置,位数反映浮点数的表示范围; R为基数 2.浮点数的表示范围关于原点对称,上溢作溢出处理,下溢作零处理 3.浮点数的规格化尾数的位数决定了浮点数的有效位数,有效位数越多精度越高。为了尽可能地保留有效数字的位数,使得有效数字尽量沾满尾数数位,必须进行规格化操作。 即通过调整一个非规格化浮点数的尾数和阶码的大小,使得非零的浮点数在尾数的最高数位上保证是一个有效值。 左规:尾数的最高位不是有效位,左移一位(M变大),阶码减1。可能进行多次。(不是小数点左移)右规:有效位进到小数点之前,右移一位(M变小),阶码加1.只进行一次 个人理解:有点像科学计数法 4. IEEE 745 标准IEEE 745 标准的浮点数(除临时浮点数之外),是尾数用采取隐藏位策略的原码表示,且阶码用移码表示的浮点数。 IEEE 745 浮点数的格式偏置值为 2^{E-1}-1 ,其基数隐含为2。设置偏置值是为了精度考虑,详情可以参考浮点数的偏置常数-CSDN博客。 对于规格化的二进制浮点数来说,最高位总是“1”,为了能使尾数多一位有效位,将这个“1”隐藏,称为隐藏位。 此时短浮点数的真值为N=(-1)^{S}\times 1.M\times R^{E-127} 长浮点数的真值为 N=(-1)^{S}\times 1.M\times R^{E-1023} 当阶码全为0或1时有特别的解释 5.定点、浮点表示的区别(字长相同)数值的表示范围:浮点数远超定点数精度:浮点数精度降低了数的运算:浮点数运算更加复杂溢出问题:运算结果超过尾数范围却不一定溢出,只有规格化后阶码超过所能表示范围时才发生溢出浮点数的加减运算1.对阶使两个操作数的小数点对其,小阶向大阶靠齐。(右移) 2.尾数求和将对阶后的尾数按定点数加减运算规则运算。运算结果不一定是规格化的,需要进一步进行规格化处理。 3.规格化同之前说明的一样。 4.舍入可能发生的右移可能会影响运算精度。一般将低位移出的两位保留下来,参加中间过程的运算,再对结果进行舍入,还原表示为 IEEE 745 标准。 0舍1入法:类似四舍五入法恒置1法:只要因移位而丢失的位中有1,就把尾数末位置1截断法:直接截取所需位数,丢弃后面的位数5.溢出判断看阶码是否溢出,阶码的值过大,指数上溢;过小,指数下溢。 并不是看尾数是否溢出,尾数溢出可以通过右移得到纠正。 6.C语言中的浮点数类型int--->float,不会发生溢出,但会影响精度。int/float--->double,double的有效位数更多,因此能够保留精度。double---->float,可能会发生溢出,发生舍入。float/double--->int,向0方向截断,发生舍入,可能会溢出。 |
CopyRight 2018-2019 实验室设备网 版权所有 |