当前位置:编程学习 > C/C++ >>

有一个16位的整数,求其二进制上每4位的数字之和

有一个16位的整数,求其二进制上每4位的数字之和。

例如:int a=1111 1111 1111 1111;(这是2进制)

            Int sum=1111 +1111 +1111 +1111.(这是10进制的1111)

[cpp] 
#include<stdio.h> 
 
int main(int argc,char *argv[]) 

    unsigned short a = 0x5; 
    unsigned int sum = 0; 
    int i,inc; 
    while(a) 
    {    
        i = 0; 
        inc = 1; 
        while(i++<4) 
        {    
            sum += (a & 0x1) * inc; 
            inc *= 10;  
            a = a >> 1; 
        } 
    } 
    printf("%d\n",sum); 
    return 0; 

 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,