让我们以N = 3为例。以二进制形式
1<<3 == 0b1000。这样
1<<3 - 1 == 0b111。
通常,
1<<N - 1以二进制形式创建带有N个数字的数字。
让
R = 1<<N-1。然后,表达式变为
(K&R) == R。所述
K&R将提取的最后N个比特,例如:
101001010 & 111 ———————————— 000000010
(回想一下,当且仅当两个 *** 作数在该数字中都为1时,按位与运算符才会在该数字中返回1。)
当且仅当最后N位全为1时,等式成立。因此,表达式检查K是否以N结尾。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)