发布网友
共2个回答
懂视网
1、浮点数在C/C++中对应float和double类型,有必要知道浮点数在计算机中实际存储的内容。
2、IEEE754标准中规定float单精度浮点数在机器中表示用1位表示数字的符号,用8位来表示指数,用23位来表示尾数,即小数部分。对于double双精度浮点数,用1位表示符号,用11位表示指数,52位表示尾数,其中指数域称为阶码。
3、注意,IEE754规定浮点数阶码E采用”指数e的移码-1”来表示,请记住这一点。为什么指数移码要减去1,这是IEEE754对阶码的特殊要求,以满足特殊情况,比如对正无穷的表示。
热心网友
过程如下:
5=101(原码表示)=1.01x2^2
对于 IEEE754单精度浮点数 = (-1)^S * (1.F) * 2^(E-127)
对于-5
符号位: S=1(一位) ;
介码: E=127+2= 1000 0001 (八位);
尾数: F= 010 0000 0000 0000 0000 0000 (二十三位);
拼一起:1 1000 0001 010 0000 0000 0000 0000 0000 =0xC0A00000(十六进制)
扩展资料:
单精度浮点数及其补码
在IEEE 754-2008的定义中,32-bit base 2格式被正式称为binary32格式。这种格式在IEEE 754-1985被定义为single,即单精度。需要注意的是,在更早的一些计算机系统中,也存在着其他4字节的浮点数格式。
一个数字的补码就是将该数字作比特反相运算(即反码),再将结果加1。在补码系统中,一个负数就是用其对应正数的补码来表示。
参考资料来源:百度百科-单精度浮点数
热心网友
5=101(原码表示)=1.01x2^2
对于 IEEE754单精度浮点数 = (-1)^S * (1.F) * 2^(E-127)
对于-5
符号位: S=1(一位) ;
介码: E=127+2= 1000 0001 (八位);
尾数: F= 010 0000 0000 0000 0000 0000 (二十三位);
拼一起:1 1000 0001 010 0000 0000 0000 0000 0000 = E0C00000 (十六进制)
即是!