此语句检查数字是否为 32 位。
0 < res <= (1 << 31) -1
我似乎无法理解如何,有人可以帮助理解这种位移语法吗?
好吧,让我们从一个例子开始:
二进制中的 1 是 1
二进制中的 2 是 10
二进制中的 4 是 100
我们可以看到,我们需要在每个数字的末尾“添加”一个 0 才能乘以 2,并且在大多数语言中,我们可以使用以下语法来做到这一点:number << 1
这里我们说的是向左侧添加 1乘以0。number >> 1
在这里,我们在右侧添加 1 次 0。
所以1 << 31
意味着 1 * 2 * 2 * 2 ... 31 次,这意味着 2^31(所以 32 位)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句