2

我有一个像这样存储的128位数字......

unsigned char upperHalf [8];
unsigned char lowerHalf [8];

其中,upperHalf 是数字的高 8 字节(Big Endian 格式),LowerHalf 是数字的低 8 字节(Big Endian 格式)

最大的限制是我不能使用 unsigned long long 来适应 128 位......

sizeof(unsigned long long ) returns 8. 

我需要用 64 位数字对这个 128 位数字取模。

我想知道是否有一种有效的方法来做到这一点?

4

1 回答 1

1

是和不是。

您需要编写自己的函数来正确地进行模数(除非您可以假设它始终是 2 的幂,这将允许您只进行移位)。或者您可以使用大整数库(例如https://mattmccutchen.net/bigint/)。

于 2013-10-24T19:55:10.377 回答