gpt4 book ai didi

c++ - 创建无符号 80 位变量

转载 作者:行者123 更新时间:2023-11-30 20:01:16 26 4
gpt4 key购买 nike

如何创建 80 位无符号变量?创建后,我需要做一些移位操作,所以在我的例子中;是 unsigned long long key=0x00000000000000000000有效吗?

const unsigned __int64 ;我可以用 unsigned __int80 更改它吗?

最佳答案

您的基本数据类型受到计算机体系结构的限制,因此可能是 8 位、16 位和 32 位整数,也可能是 64 位整数。

有些机器对 128 位整数有巧妙的扩展,但在其他机器上,您必须组合类型来实现这一点,这是由所谓的“bigint”库在后台为您完成的。例如,它们可能将两个 64 位整数包装到“128 位整数”类中,该类在递增/递减结果值时透明地处理结转。

我认为没有什么特别的原因不能将相同的逻辑应用于包装 64 位整数和 16 位整数或五个 16 位整数的“bigint”类 - 这是最好的对于您来说取决于您的用例,因此您可以尝试两者并进行测量。

我喜欢Boost.LargeInt 1,你可以用它来写 typedef large_int<uint64_t, uint16_t> uint80_t;然后继续编写程序。

碰巧的是,这个库已经有 examples of precisely this ,对于 96 位、160 位和 192 位整数。

或者,购买一台 80 位计算机。

1 如此命名令人困惑,因为它是为了包含在 Boost 中而提交的,而不是因为它实际上是一个 Boost 库。

关于c++ - 创建无符号 80 位变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826728/

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