And*_*cia 3 c++ math arbitrary-precision
我正在实现一个必须支持对整数进行任意精度操作的BigInt类.
引自S.Skiena的"算法设计手册":
我应该做什么基础 [编者注:任意精度] 算术? - 以十进制形式实现自己的高精度算术包可能是最简单的,因此将每个整数表示为一个基数为10的数字.但是,使用更高的基数更有效,理想情况下等于硬件算法完全支持的最大整数的平方根.
如何找到硬件算法完全支持的最大整数?如果我理解正确,作为我的机器是基于x64的PC,支持的最大整数应该是2 ^ 64(http://en.wikipedia.org/wiki/X86-64-架构特性:64位整数能力),所以我应该使用base 2 ^ 32,但是在c ++中有一种方法可以通过编程方式获得这个大小,所以我可以输入我的base_type吗?
你可能正在寻找std::uintmax_t和std::intmax_t.