C++ - 4个字节转为浮点数

要将4个字节转换为浮点数,可以使用C++中的类型转换操作符和位运算操作符。
以下是一个示例代码:

#include <iostream>  
#include <bitset>  
  
int main() {  
    unsigned char bytes[4] = {0x41, 0x9C, 0x24, 0x40}; // 4个字节表示的浮点数  
    float num;  
  
    // 将4个字节的数组转换为32位无符号整数  
    uint32_t uint_num = 0;  
    for (int i = 0; i < 4; i++) {  
        uint_num <<= 8;  
        uint_num |= bytes[i];  
    }  
  
    // 将32位无符号整数转换为浮点数  
    num = *(reinterpret_cast<float*>(&uint_num));  
  
    std::cout << num << std::endl;  
  
    return 0;  
}

在上面的代码中,首先将4个字节的数组 bytes 转换为32位无符号整数 uint_num。然后,使用 reinterpret_cast 将 uint_num 的地址转换为 float* 类型的指针,并解引用该指针以获取浮点数表示。最后,打印转换后的浮点数值。

请注意,在转换过程中,我们使用了 reinterpret_cast 来将 uint32_t* 类型的指针转换为 float* 类型的指针。这是一个不太安全的操作,因为它可能会导致未定义行为。因此,在使用 reinterpret_cast 时应该非常小心,确保不会出现任何问题。

浮点数转4字节

猜你喜欢

转载自blog.csdn.net/weixin_44697721/article/details/131722838