首页 > 试题广场 >

x和y之间的关系为 ()

[单选题]

float型整数据常用IEEE754单精度浮点格式表示,假设两个float型变量x和y分别在32为寄存器f 1 和f 2 中,若(f 1 )=CC900000H, (f 2 )=B0C00000H,则x和y之间的关系为 ()

  • x<y且符号相同
  • x<y且符号不同
  • x>y且符号相同
  • x>y且符号不同
32位寄存器中,根据IEEE754标准,第一位为符号位,后八位为阶码
f1:1100 1100 1001 0000 0000 0000 0000 0000 B
数符1,负数
f2:1011 0000 1100 0000 0000 0000 0000 0000 B
数符1,负数
f1 的阶大于f2的阶,所以f1<f2。
发表于 2017-03-08 09:22:24 回复(2)

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。

尾数:尾数部分:用二进制的科学计数法表示后,去掉小数点前面恒定的1,只保留小数点后面的二进制数据,存入尾数位置即可。

 

比如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



发表于 2017-09-26 10:21:45 回复(0)

f1 f2直接二进制展开前12位,发现符号相同,分别进行移码,即加上1111 1111 1111,比较结果,f1<f2

发表于 2019-11-28 16:42:55 回复(0)
float阶码尾数原码编码
发表于 2019-07-14 08:29:01 回复(0)