Dai*_*Dai 11
向左移位,每次移位都会将数字乘以2,就像向左移动十进制数乘以10一样.
使用<<运算符,如下所示:
int twoPowZero = 1; // any number^0 is 1
int twoPowOne = 1 << 1; // this sets the '2' bit to '1'
int twoPowTwo = 1 << 2;
int twoPowFive = 1 << 5;
int twoPowTen = 1 << 10;
Run Code Online (Sandbox Code Playgroud)
等等,直到你到达1 << 30.如果你使用的是带符号的32位整数,1 << 31则会因为2的补码而给你-2147483648.如果你想要高于使用long long unsigned int或uint64_t(64位整数).或者,如果您的平台支持它:uint128_t.
如果你想要更高,你需要滚动自己的"大整数"代码.请注意,某些平台和编译器带有128位整数类型,但运行时性能各不相同:它们可能需要一个可以执行128位操作的处理器,或者它们可能会将其分解为两个64位操作.
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |