首页 文章

在C中将float转换为二进制

提问于
浏览
0

我试图将浮点数转换为二进制字符串 . 我注意到有很多教程将浮动转换为所谓的"binary float."例如,数字 8.5 在二进制浮点 1000.1 中 .

这可以通过使用modf函数将尾数除以使整数部分和小数部分作为两个单独的整数来找到 . 然后使用位操作或仅使用除以2(对于十进制整数部分)打印这两个整数的二进制表示 .

1000.1 不是我想要的 . 我想要实际的二进制字符串表示 .

01000001 00001000 00000000 00000000

我无法放心,当使用modf函数时,我的float将能够转换为两个整数 .

我目前有将整数转换为二进制字符串的函数 . 我想知道浮子是否存在这样的东西 . 如果是这样,请指出我正确的方向 . 谢谢 .

1 回答

  • 2

    获取float的地址,将其转换为 int* (或具有相同 sizeof 的其他适当的整数类型),然后使用现有函数:

    // assert(sizeof(float) == sizeof(int))
    
    float f = 8.5;
    convert_int_to_binary_string(*((int*)&f));
    

相关问题