我想将浮点数转换为两个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