Boost.Multiprecisionの多倍長整数、多倍長浮動小数点数は、str()メンバ関数を持っていて、値の文字列表現をstd::stringで返します。
#include <iostream> #include <boost/multiprecision/cpp_int.hpp> using boost::multiprecision::cpp_int; int main() { cpp_int x = 123; // 10進数 { const std::string s = x.str(); std::cout << s << std::endl; } // 8進数 { const std::string s = x.str(0, std::ios_base::oct); std::cout << s << std::endl; } // 16進数 { const std::string s = x.str(0, std::ios_base::hex); std::cout << s << std::endl; } }
123 173 7B
第1引数は、出力する桁数です。0が指定された場合は整数/浮動小数点数の現在の値から再計算され、できるだけ多くの桁数を出力するよう調整されます。
第2引数には、出力のフラグを設定します。