十进制转化为十六进制,POJ 2798 2进制转换为16进制

 2023-09-25 阅读 13 评论 0

摘要:时间限制:1000ms内存限制:65536kB描述输入一个2进制的数,要求输出该2进制数的16进制表示。 在16进制的表示中,A-F表示10-15输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是
时间限制: 
1000ms
内存限制:
65536kB
描述
输入一个2进制的数,要求输出该2进制数的16进制表示。
在16进制的表示中,A-F表示10-15
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000
输出
n行,每行输出对应一个输入。
样例输入
2
100000
111
样例输出
20
7
(1)、源代码:
#include<iostream>
#include<cstring>
usingnamespacestd;
 
charsix[] ="0123456789ABCDEF";
intfour[] = {1,2,4,8};
 
charchange(char*tmp,intnum){
                inti;
                charret = 0;
                for(i=0; i<num; i++){
                                ret += (tmp[i]-'0') * four[num-i-1];
                }
                returnsix[ret];
}
 
intmain(){
                intn, len, i;
                cin >> n;
                charnum[10010];
                while(n-- > 0){
                                cin >> num;
                                len = strlen(num), i = 0;
                                while(len > 0){
                                                inttmp = len % 4;
                                                if(tmp == 0)
                                                                tmp = 4;
                                                cout << change(&num[i],tmp);
                                                len -= tmp;
                                                i += tmp;
                                }
                                cout << endl;
                }
}
 
(2)、解题思路:略
(3)、可能出错:略

转载于:https://www.cnblogs.com/lydf-2012/archive/2012/05/02/2479669.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/95744.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息