我注意到Boost.Multiprecion库的cpp_int后端在64位架构上使用32位无符号整数作为字(肢体)。要使用的64位字是编译器中原生128位整数的可用性(这可能是一个线索)。那是为什么?
更多关于“线索”的信息。对于在文件limb_type
中没有本机128位整数支持的编译器,detail::largest_unsigned_type<32>::type
被定义为boost/multiprecision/cpp_int/cpp_int_config.hpp
。还有一种名为double_limb_type
的类型。