码迷,mamicode.com
首页 > 其他好文 > 详细

水题T,二进制转16进制

时间:2018-11-13 23:04:41      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:组成   std   sam   main   abc   程序   for   nbsp   pac   

输入一个2进制的数,要求输出该2进制数的16进制表示。 
在16进制的表示中,A-F表示10-15 
Input第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000Outputn行,每行输出对应一个输入。Sample Input

2
100000
111

Sample Output

20
7

2进制转换成16进制。
从后面开始,每四位换成一个数,0123456789ABCDEF,不足4位在前面用0补上。

程序一直出问题,因为定义的是char型的数组,所以操作的时候必须用‘0‘ ‘A‘等等。
#include <bits/stdc++.h>
using namespace std;
char s1[10005];
char convert[] = "0123456789ABCDEF";


int main(){
	int n; 
	cin>>n;
	getchar();
	while(n--){
		char s3[10000]={0};//存放结果
		gets(s1+4);
		s1[0] = s1[1] = s1[2] = s1[3] = ‘0‘;  //令前四位为0
		int len1 = strlen(s1);
		int m = 4;
		if(len1%4) m = len1%4; 
		

		int j = 0;
		for(int i = m; i < len1; i+=4) 
		{
			s3[j] = convert[(s1[i]-‘0‘)*8 + (s1[i+1]-‘0‘)*4 + (s1[i+2]-‘0‘)*2 + (s1[i+3]-‘0‘)];

			j++;
		}
		cout<<s3<<endl;
	}
	return 0;
}

 

水题T,二进制转16进制

标签:组成   std   sam   main   abc   程序   for   nbsp   pac   

原文地址:https://www.cnblogs.com/stul/p/9955348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!