思路就是不断右移两个数,每次比较最低位是否相同,在比较最低位时通过将数和1进行与运算,就可以得到最低位的值。
例如4和8,它们的二进制分别可表示为00000000000000000000000000000100和0000000000000000000000000001000.
第一次:
00000000000000000000000000000100 & 1 = 00000000000000000000000000000000
00000000000000000000000000001000 & 1 = 00000000000000000000000000000000
此时它们相等,将它们都右移一位,表示为:
00000000000000000000000000000010和0000000000000000000000000000100.
第二次:
00000000000000000000000000000010 & 1 = 00000000000000000000000000000000
00000000000000000000000000000100 & 1 = 00000000000000000000000000000000
此时它们相等,将它们都右移一位,表示为:
00000000000000000000000000000001和0000000000000000000000000000010.
第三次:
00000000000000000000000000000001 & 1 = 00000000000000000000000000000001
00000000000000000000000000000010 & 1 = 00000000000000000000000000000000
此时它们不相等,计数器+1,将它们都右移一位,表示为:
000000

本文介绍了一种统计两个32位整数二进制表示中不同bit位的方法,通过不断右移并比较最低位,直到所有位都比较完。以4和8为例,详细解释了位比较过程。

1502

被折叠的 条评论
为什么被折叠?



