1、就是在二进制中,一个数的小数点可以可以通过乘以2的幂次来改变位置,这是其原理 。
(资料图片)
2、浮点数的组成:阶符+ 阶码 +数符+ 尾数计算机中表示浮点数的字长通常为32位,其中7位作阶码,1位为阶符,23位尾数,1位作数符例如用2个字节表示一个浮点数(32写起来麻烦,所以用2个字节就是16位来举例,呵呵希望谅解) (72.45x10^5)D先换成普通二进制数(11011101000110011001000)B然后开始像十进制数的科学计数法那样写成约等于(0.1101110)Bx(2^23)D之后再将后半部分的(2^23)D转换成(2^10111)B于是整个数就变成了(0.1101110x2^10111)B在计算机中表示成0001011101101110 其中第一个0是阶符表示指数是正的第九个0表示尾数是正的他们中间的就是阶码,后面的就是尾数。
3、浮点表示法是已知的C/C++编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE浮点数表示法来进行运算的。
4、这种结构是一种科学表示法,用符号(+或-)、指数和尾数来表示,底数被确定为2。
5、所以在IEEE浮点数表示法里,一个浮点数为尾数乘以2的指数次方再加上符号。
6、float规格float共计32位,4字节由最高到最低位分别是第330、29、……、0位,则:31位是符号位,1表示该数为负,0表示为正。
7、30-23位,一共8位是指数位。
8、22-0位,一共23位是尾数位。
9、3、转换例子按照IEEE浮点数表示法,将float型浮点数123456.0f转换为二进制(注:这里的f表示浮点数,为十进制数,不是表示16十六进制)。
10、处理不带小数的浮点数时,直接将整数部转化为二进制表示:11110001001000000也可以这样表示:11110001001000000.0然后将小数点向左移,一直移到离最高位只有1位:1.11100010010000000共左移了16位,所以原数就等于:1.11100010010000000*(2^16)。
11、 可知尾数为1。
本文分享完毕,希望对大家有所帮助。