我想在不使用 Math.Pow 的情况下计算 2 的幂,因为我想避免使用 double。所以我需要一个完整的整数值。我以为我可以只使用左移运算符,但当我的幂超过 30 时,它给出负数表示 31 次幂,而给出大于 31 的幂次为 1。
我的方法是这样的
public static long TwoPowX(int power)
{
return (1 << power);
}
有什么想法吗?或者替代方法?
编辑: 我需要达到功率 96 甚至更高。
2^96 = 79,228,162,514,264,337,593,543,950,336。
最佳答案
文字 1
是一个整数,所以整个表达式 (1 << power)
在转换为 long 之前,也将被评估为 int 和 overflow。使用 1L
相反。
public static long TwoPowX(int power)
{
return (1L << power);
}
关于c# - 如何使用左移运算符计算大幂次的 2 的幂次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32912171/