我想將浮點數轉換爲兩個16位整數。 我已經寫的代碼如下給出:將浮點數轉換爲C中的兩個16位整數
float floatCurrentVolume = 1234.50;
uint32_t ui32TemperaryVariable1;
uint16_t ui8ModbusRegister[2] = {0};
ui32TemperaryVariable2 =(uint32_t) floatCurrentVolume;
ui8ModbusRegister[0] = (uint16_t)(floatCurrentVolume && 0x0000FFFF);
ui8ModbusRegister[1] = (uint16_t)((ui32TemperaryVariable3 >> 16) && 0x0000FFFF);
基本上floatCurrentVolume應該被分成兩個16位寄存器。 但是,當我檢查輸出我得到ui8ModbusRegister [0] = 0,ui8ModbusRegister [1] = 1。 代碼有什麼問題?
__C__'!='__C++ __'!='__C__,它們是不同的語言,需求被視爲這樣。 :)選擇一個,堅持下去。 –
請使用Ctrl + K或使用四個空格縮進來正確縮進代碼。另外,C和C++是兩種不同的語言,請選擇一種。這看起來像它雖然是C雖然 – Badda
'#ifdef __cplusplus'' #error C++編譯器''#endif' – pmg