我需要將IEEE單精度浮點數編寫到特定地址的32位硬件寄存器中。爲此,我需要將float類型的變量轉換爲無符號整數。我能得到整數表示這樣的:獲取浮點型IEEE單精度位
float a = 2.39;
unsigned int *target;
printf("a = %f\n",a);
target = &a;
printf("target = %08X\n",*target);
返回:
a = 2.390000
target = 4018F5C3
都很好。然而,這會導致編譯器警告「cast.c:12:警告:從不兼容的指針類型分配」
是否有任何其他方法可以執行此操作,但不會生成警告?這是針對特定的硬件,我不需要處理不同的排序等,我不想循環通過每個字符出於性能的原因,因爲一些其他問題往往表明。好像你也許可以在C使用的reinterpret_cast ++但我用C.
+1,用於memcpy。 – user7116 2012-07-24 19:49:48