版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linxizi0622/article/details/69256915
举个例子,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