我想获取double
变量的最重要的 32 位字。
我知道 adouble
有 8 个字节长,我希望作为我的函数的返回 anunsigned long
将保存双精度的 4 个最高有效字节。
unsigned long doublesmsw(double value);
int main()
{
double d=54645654663905 ;
unsigned long fin=doublesmsw(d);
printf("%lu", fin );
return 0;
}
unsigned long doublesmsw(double value)
{
unsigned long long mask=0x00000000ffffffff ;
return ((unsigned long long) value>>32 & mask);
}