- 一、右移运算与&运算
- 二、具体实现
- 1.代码
- 2.运行结果
一、右移运算与&运算
对于无符号数,无论是逻辑右移还是算数右移,右边均补0,所以通过将一个无符号数不停的执行右移运算,可以将一个数的每一位依次移动到个位上(相当于执行/10的 *** 作)。
通过A&1=A、A&0=0可以用来测试某一位的数值是1还是0
代码如下(示例):
#include2.运行结果int main() { unsigned int a, count=0; printf("输入a的值"); scanf("%d", &a); for (count = 0; a != 0; a >>= 1) //将次末位变为末位 { if ((a & 1) != 0) //测试最末位是否为1 也可以写成if((a%2) != 0) { count++; } } printf("count = %dn", count); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)