码迷,mamicode.com
首页 > 其他好文 > 详细

c中“>>”与“&”运算符

时间:2015-10-20 06:47:36      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:按位运算符


       在c中位运算符有:与、 或、异或、取反、左移和右移,位运算符是以二进制进行运算的。
       右移运算符,是将一个数的各二进制位右移动n位,移到右端的低位被舍弃,对于无符号数,高位补0,即在十进制中,每右移动一位等价于除以2,例如:
   
   a:10101010 01010101   a>>2:00101010 10010101
   
   对于有符号数,某些机器将对左边空出的部分用符号位填补但一些机器则对左边空出的部分用0填补。例如:
   
   a:11100111 00011101 a>>1:01110011 1000111011110011 10001110
   
  c中源代码:

写出15转化为二进制后1的个数。

 

#include<stdio.h>

int main()

{

 int a=15;

 int count=0;

 while(a)

 {

   if(a%2==1)

   count++;

   a=a>>1;}

   printf("%d",count);

return 0;

}


结果为:4

与运算符:按位与运算符&经常用于屏蔽某些二进制位。例如:


a:1001 0111  b:1111 0000    a&b:1001 0000


c程序

输入一个数转化为二进制后1的个数。

#include<stdio.h>

int main()

{

int count=0;

int num;

    scanf("%d",&num);

while(num)

{

count++;

num=num&(num-1);

}

     printf("%d\n",count);

return 0;

}

结果:4


c中“>>”与“&”运算符

标签:按位运算符

原文地址:http://19940325.blog.51cto.com/10789287/1704351

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!