読者です 読者をやめる 読者になる 読者になる

Boost.Multiprecision 文字列に変換する

C++

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引数には、出力のフラグを設定します。