我想打印从十六进制值转换而来的整数值,但我只能打印十六进制值。
#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位类型的整数的最大值?
发布于 2020-02-17 21:55:13
您应该使用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;
}https://stackoverflow.com/questions/60263591
复制相似问题