我相信这并不像我想象的那么困难。
希望使用等效于Math.Pow(double, double)但输出整数的内容。我担心浮点的舍入错误。
我能想出的最好的办法是:

uint myPower = 12;
uint myPowerOfTwo = (uint)Math.Pow(2.0, (double)myPower);

我想到了这个:
uint myPowerOfTwo = 1 << myPower;    // doesn't work

但我得到的错误是运算符“<有什么建议吗?一如既往地谢谢你。

最佳答案

移位运算符的第二个操作数(右侧)必须使用有符号整数:

int myPower = 12;
int myPowerOfTwo = 1 << myPower;

当然,您可以将结果转换为另一个数字类型,如UTEN:
uint myPowerOfTwo = (uint) (1 << myPower);

从AA>
左移位运算符(<它的第一个操作数
由其第二个指定的位
操作数。第二个操作数的类型必须是int。

关于c# - 在C#中计算2的整数次幂的简单方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5507103/

10-12 14:53