浮点数f和浮点数的相反数-f在内存中怎么表示

来源:互联网 发布:sql server存储过程 编辑:程序博客网 时间:2024/05/16 19:00

举个例子,f=3.0

那么f的二进制表示为

0x40400000

那么-f的二进制表示为

0xc0400000

用下面的代码可以测得

#include<stdio.h>
union
{
char x[4];
float f;
}a;
int main()
{
//f=3
a.x[0]=0x00;
a.x[1]=0x00;
a.x[2]=0x40;
a.x[3]=0xC0;
printf("%f",a.f);
//f=-3
//a.x[0]=0x00;
//a.x[1]=0x00;
//a.x[2]=0x40;
//a.x[3]=0x40;
//printf("%f",a.f);
return 0;
}

那么-f=f^0x80000000

0 0