c++ - 将 int 128 除法提升为浮点数
问题描述
我是新来的。我的项目中有 128 位整数(int128_t boost/multiprecision/cpp_int.hpp
),我需要将其除以浮点数。在我目前的平台上,我有限制,不能使用boost/multiprecision/float128.hpp
. 现在仍然不支持clang https://github.com/boostorg/math/issues/181
boost数学库有什么办法吗?
解决方案
也许将 int128 拆分为 64 位数字?
i128 = h64 * (1<<64) + l64 然后您可以轻松加载这些值 shift 并将它们在 64 位浮点上求和以获得等效数字。
或者,由于浮点硬件实际上只有 64 位精度,您可以将 int128 向下移动,直到它适合 64 位,然后将其转换为浮动,然后再向上移动,但前者实际上可能更快,因为它是更简单。
推荐阅读
- java - 如何使用 bufferedreader 捕获 csv 文件中的字段值
- javascript - 如何使用现代 FileApi 在本地 fs 中创建文件?
- xamarin - Xamarin 在 Andriod 设备上使用黑色背景和白色二维码形成 Zxing 扫描问题
- linux - 根据命令行中同一行中的单词的条件更改另一个单词?
- c# - C#:Random.NextDouble 方法停止应用程序
- locking - 在 Marklogic 中的指定时间释放所有文档锁
- database - 使用数据库扩展服务
- python - 如何使用 requests 模块下载 csv 文件
- python - 从wireshark pcap文件中获取资产信息
- dart - 如何在 while 循环中找到错误?