float型整数据常用IEEE754单精度浮点格式表示,假设两个float型变量x和y分别在32为寄存器f 1 和f 2 中,若(f 1 )=CC900000H, (f 2 )=B0C00000H,则x和y之间的关系为 ()
float和double都由符号位、阶码、尾数三部分组成,float存储时使用4个字节,double存储时使用8个字节。各部分占用位宽如下所示:
符号位 阶码 尾数 长度
float 1 8 23 32
double 1 11 52 64
符号位:0代表正数,1代表负数。
阶码:用移位表示法存储科学计数法中的指数数据:float阶码占8位,取值范围-128~127,但并没有按照移位表示法+128,而是+127。同理double要+1023。
比如8.25,二进制科学计数法表示为:1.00001*2^3,具体转换方法:8的二进制1000;.25的二进制.01:即0*2^(-1) + 1*2^(-2)。写为:1000.01,小数点左移3位,即转换完毕。
符号位确定:8.25为正数,符号位为0。
阶码的表示:阶码位3+127=130;二进制10000010,已经是8位。
尾数的表示:去掉小数点前面的1,为00001,后面补充0至23位:000 0100 0000 0000 0000 0000
最终8.25在内存里存储的二进制为:0100 0001 0000 0100 0000 0000 0000 0000