16位的二进制数,每4位为一个数,写函数求他们的和

备注:键盘输入一个10进制的数 ,程序会自动转成16位二进制的数 ,然后在进行每4位为一个数,写函数求他们的和。

代码如下:

char SumOfQuaters(unsigned short n)
{
    int c = 0;
    int i = 4;
    do
    {
        c += n & 15;//把n和15(二进制位1111)按位与操作,可以得出低四位的数。然后把n右移4位,最左边对4位用0000代替,

           这样又可以得出低四位的数,以此类推,可以得出其他对数。
        n = n >> 4;
    } while (--i);
    return c;
}
void main()
{
 
 unsigned short a ;
 char b;
 scanf("%d",&a);
 b=SumOfQuaters(a);
 printf("%d",b);
}

原文地址:https://www.cnblogs.com/wangliangliang/p/3185313.html