我是靠谱客的博主 稳重大神,这篇文章主要介绍【C语言】统计一个数中1的个数(移位操作符),现在分享给大家,希望可以做个参考。

移位操作符介绍:

== 移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。==

位移位运算符分为【>>】 右移和【<<】 左移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。

移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。 如果是左移,则规定补入的数全部是0; 如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)

左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变

示例:统计一个数中1的个数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(112)

评论列表共有 0 条评论

立即
投稿
返回
顶部