有趣加密

本文介绍了一个C语言程序,该程序能够将输入的整数从十进制转换为二进制并计算位数之和(b1),同时也能将输入的整数视为十六进制数并转换为二进制后通过查找表来计算位数之和(b2)。此程序适用于理解不同进制间的转换和位操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先把输入的第一个数按十进制转化为二地址,拆开相加得出来为b1, 第二个把原先的数按十六进制,然后转化为二进制,拆开求和得出b2

#include<stdio.h>

int main(){

    int t,n,b1,b2,m;

    int a[10]={0,1,1,2,1,2,2,3,1,2};先把十六进制的转化为二进制,如3,0011.,得2

    scanf("%d",&t);

    while(t--){

    b1=b2=0; 

       scanf("%d",&n);

    m=n;

    while(m!=0)

       {b1+=m%2;

     m=m/2;

}

    while(n!=0)

    {b2+=a[n%10];

    n=n/10;               

}

  printf("%d %d\n",b1,b2);           

}

    return 0;    

} http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=960

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=12&problem=960&mosmsg=Submission+received+with+ID+11322825

转载于:https://www.cnblogs.com/sujunjie/archive/2013/02/28/2937593.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值