c++ - C++ 中的 float 到二进制数

标签 c++ floating-point numbers

我想知道是否有一种方法可以在 C++ 中使用 char 来表示 float ?

例如:

int main()  
{  
    float test = 4.7567;  
    char result = charRepresentation(test);  
    return 0;  
}  

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

假设我的浮点变量是二进制的 01001010 01001010 01001010 01001010。

如果我想要一个包含 4 个元素的 char 数组,第一个元素将是 01001010,第二个:01001010 等等。

我可以在包含 4 个元素的字符数组中表示 float 变量吗?

最佳答案

我怀疑你想说的是:

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;  
}  

编辑添加:所有指出您不能将 float 放入 8 位的人当然是正确的,但实际上 OP 正在摸索理解 float,就像所有原子数据类型一样,最终是一个简单的连续字节 block 。这对所有新手来说都不是显而易见的。

关于c++ - C++ 中的 float 到二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2746380/

相关文章:

android - 加速 ImageView 中的缩放功能

Java:如何将 Double 2.3 更改为 "2.0"?

javascript - 使用 javascript 解决数字键盘难题

javascript - javascript如何处理大数?

c++ - 如何声明一个未知大小的结构?

c++ - 使用 typedeffing 模板化基类来简化代码是一种好习惯吗?

C++ - Eclipse 行为在调试和运行时是不同的

c++ - 为什么我们不能将浮点值与某些数值进行比较

math - float 学有问题吗?

powershell - 如何在 PowerShell 中将十六进制小数转换为十进制?