[英]how to print boost multiprecision 128 bit unsigned integer
我想打印從十六進制值轉換而來的整數值,但我只能打印十六進制值。
#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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.