发布网友 发布时间:2022-06-21 12:20
共2个回答
懂视网 时间:2022-08-20 12:46
1、浮点数在C/C++中对应float和double类型,有必要知道浮点数在计算机中实际存储的内容。
2、IEEE754标准中规定float单精度浮点数在机器中表示用1位表示数字的符号,用8位来表示指数,用23位来表示尾数,即小数部分。对于double双精度浮点数,用1位表示符号,用11位表示指数,52位表示尾数,其中指数域称为阶码。
3、注意,IEE754规定浮点数阶码E采用”指数e的移码-1”来表示,请记住这一点。为什么指数移码要减去1,这是IEEE754对阶码的特殊要求,以满足特殊情况,比如对正无穷的表示。
热心网友 时间:2023-09-22 20:30
C1440000(11000001010001000000000000000000)
单精度浮点数用4个字节存储,分别是符号位1位,阶码8位,尾数23位(这里用的是32位)
公式:
x =( -1 )^s × ( 1.M ) × 2^e
E = e +127
S:浮点数的符号位
E:阶码
M:位数
e:指数真值
(-12.25)10下标=( -1011.11)2下标=(-1)^1x1.01111x2^3
1、由于是负数所以第一位符号位S为1
2、E=3+127=130 转换为二进制 10000010 求出阶码
3、这里的由于负数算出来的二进制为补码,而尾数位用的是原码
即12.25的二进制为1100.01,此时的尾数即去掉最高位1的结果 10001000000000000000000
热心网友 时间:2023-09-22 20:30
但我写好了之后,给你拍张照片发过来吧。