gpt4 book ai didi

在C中将 float 转换为二进制

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:04 25 4
gpt4 key购买 nike

我正在尝试将 float 转换为二进制字符串。我注意到很多教程都在将 float 转换为所谓的“二进制 float ”。例如,数字 8.5 是二进制 float 1000.1

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

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

01000001 00001000 00000000 00000000

我不能保证在使用 modf 函数时我的 float 能够转换为两个整数。

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

最佳答案

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

// assert(sizeof(float) == sizeof(int))

float f = 8.5;
convert_int_to_binary_string(*((int*)&f));

关于在C中将 float 转换为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com