c++ - 如何打印提升多精度 128 位无符号整数
问题描述
我想打印从十六进制值转换的整数值,但我只能打印十六进制值。
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
cpp_int dsa("0xFFFFFFFFFFFFFFFF");
cpp_int daa("9223372036854775807");
daa = ((daa * 64) + daa);
cout << std::hex<<dsa <<std::showbase<< endl;
cout <<dsa << endl;
cout <<daa << endl;
cout <<(int)daa << endl;
cout <<(int128_t)daa << endl;
输出
ffffffffffffffff
0xffffffffffffffff
0x207fffffffffffffbf
0x7fffffff
0x207fffffffffffffbf
如何打印 128 位整数类型的最大值?
解决方案
您应该使用std::numeric_limits
来获取最大值,因为这是它的目的。您的格式问题与您的实际问题无关。
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
#include <limits>
int main()
{
auto max = std::numeric_limits<boost::multiprecision::int128_t>::max();
std::cout << max << std::endl;
}
推荐阅读
- c# - 如何使用 ValueConversions 检索 Entity Framework Core 的数据库模型
- scala - 如何将数据框中的每一列转换为具有 ColumnName 和 ColumnValue 的行
- mysql - 使用计算值或触发器来更新同一表中不同行的数据的行?
- java - 我正在尝试通过 ModBus RTU 协议从时间计数器 OVEN 获取数据,但收到垃圾作为响应
- python - 为什么使用 list() 构造函数?
- php - 从 nuxt.js 发布到 laravel 后,值变为空
- wagtail - 如何在 InlinePanel 中设置初始空(可订购)项目的数量?
- javascript - 提交后刷新对话框及其内容
- reactjs - 使用 BrowserRouter 单击按钮/链接后如何切换到其他 url
- javascript - 为什么在月份下拉菜单中选择选项 12 时仅不加载 12 月份?