在计算机科学中,移位操作一般可以用来作乘以或除以2的n次方的操作。
比如:
50的二进制码是00110010,那么50>>1就变成了00011001,正好是25。
24的二进制码是00011000,那么24<<2就变成了01100000,正好是96。
但负数就不能用<<,>>了。
比如:
-50的二进制码是11001110,-50>>1,就变成了01100111,这是103的二进制码。
-24的二进制码是11101000,-24<<2,就变成了10100000,这是160的二进制码。
所以,计算机还提供了一种算术移位,即移位时不改变符号位。
比如-50>>>1,变成11100111,这正好是-25的二进制码。
具体到这个题目,就是将产生的随机数除以2,再用商除以101,取余数。 |