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

概述

移位操作符介绍:

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

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

移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。 如果是左移,则规定补入的数全部是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的个数(移位操作符)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部