概述
移位操作符介绍:
== 移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。==
位移位运算符分为【>>】 右移和【<<】 左移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。 如果是左移,则规定补入的数全部是0; 如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)
左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变
示例:统计一个数中1的个数
#include<stdio.h>
unsigned int value, val;
int count_one_bits(unsigned value)
{
int ones; //用于统计有几个1
for( ones = 0; value != 0; value = value >> 1 )
/*
** 右移直到这个数变成0就可以退出循环
** >>是右移动,无符号数右移左边补0
*/
if( value % 2 != 0 )
ones = ones + 1;
return ones;
}
void main()
{
printf( "请输入一个数:" );
scanf( "%d", &val );
printf("该数中有%d个1",count_one_bits(val));
}
最后
以上就是稳重大神为你收集整理的【C语言】统计一个数中1的个数(移位操作符)的全部内容,希望文章能够帮你解决【C语言】统计一个数中1的个数(移位操作符)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复