Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C DWORD铸造在简单交换后浮动?_C_Casting_Floating Point_Swap_Dword - Fatal编程技术网

C DWORD铸造在简单交换后浮动?

C DWORD铸造在简单交换后浮动?,c,casting,floating-point,swap,dword,C,Casting,Floating Point,Swap,Dword,我想交换我的浮动示例:14 D7 65 01-->65 01 14 D7 交换很容易。我处理DWORD,进行交换,然后将DWORD变量转换为float。我的问题是浮点值是错误的。 我相信德沃德交换是好的,做得很好。我认为演员演得不好。 欢迎任何帮助!提前谢谢你 以下是代码的核心: DWORD value = 0x713D2242; value =(LOWORD(value)<<16)+ HIWORD (value); float fvalue = (flo

我想交换我的浮动示例:14 D7 65 01-->65 01 14 D7

交换很容易。我处理DWORD,进行交换,然后将DWORD变量转换为float。我的问题是浮点值是错误的。 我相信德沃德交换是好的,做得很好。我认为演员演得不好。 欢迎任何帮助!提前谢谢你

以下是代码的核心:

    DWORD value = 0x713D2242; 
    value =(LOWORD(value)<<16)+ HIWORD (value); 
    float fvalue = (float)value;
DWORD值=0x713D2242;
value=(LOWORD(value)使用并集,例如:

union
{
    DWORD i;
    float f;
} u;

DWORD value = 0x713D2242; 
u.i = (LOWORD(value) << 16) + HIWORD(value); 
float fvalue = u.f;
联合
{
德沃德一世;
浮动f;
}u;
DWORD值=0x713D2242;

u、 i=(LOWORD(value)我不知道为什么,但我从一本书中找到了一个解决方案,将浮点数转换为DWORD数:

float f = ...;
DOWRD dw;
dw = *((DWORD*)&F);