Problem 1011 进制间的转换

Description

给你N个整数,对于每一个整数,输出它的2进制表示形式,8进制表示形式和16进制表示形式,且2进制必须以B结尾,8进制必须以0开口,16进制必须以H结尾(看样例)

Input

输入的第一行包含一个整数N(1<=N<=100),
接下来的N行,每行一个整数M(1<=M<=1000000)。

Ouput

对于给定的每个整数M,输出一样,分别为它的2、8、16进制表示形式,用空格隔开。

Sample Input

234

Sample Output

11101010B 

0352 

eaH 

#include
char s[1000000];
int s1[1000000];
int fun(int n,int m){
	int i=0;
	if(m==0)
	return 0;
	
	while(m){
		s[i]=m%n+48;
		m=m/n;
		i++;
	}
	return i;
}
int main()
{
	int t,i,m,a,j,b;
    scanf("%d",&t);
    for(i=0;i=0;j--){
    		printf("%c",s[j]);
    	}
    	printf("B ");
    	a=fun(8,m);
		printf("0");
    	for(j=a-1;j>=0;j--){
    		printf("%c",s[j]);
    	}
    	printf(" ");
    	i=0;
    	while(m){
    		s1[i]=m%16;
    		m=m/16;
    		i++;
    	}
    	for(j=i-1;j>=0;j--){
    		if(s1[j]<10){
    			printf("%d",s1[j]);
    		}else{
    			switch(s1[j]){
    				case 10:
    					printf("a");
    					break;
    				case 11:
    					printf("b");
    					break;
    				case 12:
    					printf("c");
    					break;
    				case 13:
    					printf("d");
    					break;
    				case 14:
    					printf("e");
    					break;
    				case 15:
    					printf("f");
    					break;
    			}
					
    		}
    	}
    	printf("H\n");
    }
    return 0;  
}


你可能感兴趣的:(Problem 1011 进制间的转换)