微机原理分支程序设计步骤 统计二进制数中的1的个数?
浏览量:1371
时间:2021-03-11 15:35:54
作者:admin
统计二进制数中的1的个数?
计算机中的数字是二进制存储的,所以计算过程也是二进制计算。利用某些位运算的特点,很容易计算出1的个数。有一个非常有趣的特性:对于任何二进制数,例如n=10001100,我们将其减去1:n-1=10001011。再放观察:10001100(n)10001011(n-1)通过观察,n中1的最低位置是第三位,而n-1和n的下三位都不同。如果执行“按位与”运算,即n&(n-1)=1000。10001100(n)10001011(n-1)10001000(n&(n-1))您可以看到所有三位都变为0。如果你的数学足够好,你可以得出结论:[结论]要去掉整数n中的最小1,你可以使用n=n&(n-1)。如果你不相信,你可以尝试更多的数字或再考虑一下。利用这个结论,很容易问二进制中有多少个1:int countbits(int n){int count=0 while(n!=0){n=n&(n-1)计数}返回计数}
微机原理分支程序设计步骤 统计16位二进制数中1的个数 汇编语言统计1的个数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。