gpt4 book ai didi

c - 1 左移 n

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

在这个等式中

#define mod 1000000007
int n;
int num = ((1<<n)%mod)+2;

我必须将 1 左移任意 n 值,然后执行 mod 运算以将结果包含在 int 范围内。但是1<<n对于较大的 n 值(例如 1000 或 10000),未显示正确的值。该怎么办?

最佳答案

左移 1 的最大值为 CHAR_BIT * sizeof(int) - 2。任何较大的数量都会导致未定义的行为。

如果您想处理像 210000 这样的数字,您将必须使用大整数库(或编写您自己的库),没有内置数据类型可以处理该问题准确地排序数字。

另一种选择是使用更智能的模幂算法。

关于c - 1 左移 n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26256233/

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