gpt4 book ai didi

c++ - 在 C++ 中表示 128 位数字

转载 作者:IT老高 更新时间:2023-10-28 13:58:45 26 4
gpt4 key购买 nike

在 C++ 中表示 128 位数字的最佳方式是什么?它的行为应尽可能接近内置数字类型(即支持所有算术运算符等)。

我正在考虑构建一个具有 2 个 64 位或 4 个 32 位数字的类。或者可能只是创建一个 128 位的内存块并自己做所有事情。

是否有一些更简单/更标准的方法,或者我自己实现时不太可能搞砸的方法? :)

如果能扩展到256位、512位等就好了……

最佳答案

编辑:当我第一次写这个 boost::multiprecision::uint128_t 的时候还没有。出于历史原因保留此答案。


我之前做过一个 uint128 类,你可以查看:http://www.codef00.com/code/uint128.h

它依赖于 boost 来自动提供数学运算符的所有变体,因此它应该支持原生 unsigned int 类型所做的一切。

内置类型有一些小的扩展,例如用这样的字符串初始化它:

uint128_t x("12345678901234567890");

有一个与 C99 中的类似的便利宏,您可以像这样使用它:

uint128_t x = U128_C(12345678901234567890);

关于c++ - 在 C++ 中表示 128 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1188939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com