在C++中浮动到二进制

Eri*_*ric 4 c++ floating-point numbers

我想知道是否有办法在C++中使用char表示浮点数?

例如:

int main()  
{  
    float test = 4.7567;  
    char result = charRepresentation(test);  
    return 0;  
}  
Run Code Online (Sandbox Code Playgroud)

我读到可能使用bitset我可以做到,但我不太确定.

假设我的float变量是二进制的01001010 01001010 01001010 01001010.

如果我想要一个包含4个元素的char数组,第一个元素将是01001010,第二个元素将是01001010,依此类推.

我可以在4个元素的char数组中表示float变量吗?

egr*_*nin 8

我怀疑你想说的是:

int main()  
{  
    float test = 4.7567; 
    char result[sizeof(float)];

    memcpy(result, &test, sizeof(test));

    /* now result is storing the float,
           but you can treat it as an array of 
           arbitrary chars

       for example:
    */
    for (int n = 0; n < sizeof(float); ++n) 
        printf("%x", result[n]);

    return 0;  
}  
Run Code Online (Sandbox Code Playgroud)

编辑添加:所有人都指出你不能适应float8位当然是正确的,但实际上OP正在摸索理解a float,像所有原子数据类型一样,最终是一个简单的连续字节块.这对所有新手来说并不明显.

  • 您也可以使用reinterpret_cast <char*>(test)来达到类似的效果. (3认同)
  • @starblue; 应该是`reinterpret_cast <char*>(和测试)`对吗? (2认同)