在 C++ 中组合数字的整数和浮点部分

Combining integer and float parts of a number in C++

提问人:Tah_Ra 提问时间:10/11/2023 最后编辑:Tah_Ra 更新时间:10/11/2023 访问量:59

问:

我有三个变量

uint_8 a = 整数值,比如 11111100,uint_4 b = a 的小数部分,比如 .1001,

浮点数 c

其中 a 是 8 位,b 是 4 位。

无论如何,我在 c 中将 a 和 b 组合在一起,使 c 的值为 11111100.1001

我需要可以做到这一点的功能。可以将整数和分数分开的函数。但是我目前还没有找到的那个。

C++11 固定 浮点分数

评论

2赞 chtz 10/11/2023
c = a + b/16.f?
2赞 chtz 10/11/2023
或者(可能)更有效(取决于如何存储):。你甚至可以考虑做一些位的魔术(假设你知道目标机器的二进制浮点表示)。abc = (16*a + b)/16.f;
2赞 Sam Mason 10/13/2023
请注意,可能值得搜索“定点”数学。通常将存储并打包到单个整型字段中,这意味着@chtz转换为 a 的建议将简化为简单的 .abfloatpacked / 16.f
0赞 Tah_Ra 10/14/2023
例如,我们有一个十进制值 3.15。我得到的二进制等价物是 00000011.0010。在这里,11 我得到 8 位,0.0010 我得到另外 4 位。但我想将其处理为 00000011.0010,并希望将其存储到一个浮点数中。有什么见解吗?@SamMason
0赞 Tah_Ra 10/14/2023
@chtz看看我上面的评论

答: 暂无答案