我确信这并不像我要做到的那么困难.
想要使用等价Math.Pow(double, double)但输出整数的东西.我担心浮点数的舍入错误.
我能想到的最好的是:
uint myPower = 12;
uint myPowerOfTwo = (uint)Math.Pow(2.0, (double)myPower);
Run Code Online (Sandbox Code Playgroud)
我想到了这个:
uint myPowerOfTwo = 1 << myPower; // doesn't work
Run Code Online (Sandbox Code Playgroud)
但我得到的错误是运算符"<<"不能与int 或 uint 类型的操作数一起使用.
有什么建议?一如既往地谢谢.
Bro*_*ass 28
你必须使用有符号整数作为移位运算符的第二个操作数(右侧):
int myPower = 12;
int myPowerOfTwo = 1 << myPower;
Run Code Online (Sandbox Code Playgroud)
当然,您可以将结果转换为另一种数字类型,例如uint:
uint myPowerOfTwo = (uint) (1 << myPower);
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
左移运算符(<<)将其第一个操作数左移第二个操作数指定的位数.第二个操作数的类型必须是int.
| 归档时间: |
|
| 查看次数: |
17683 次 |
| 最近记录: |