[문제 ] 10진수를 2진수 ~ 16진수로 바꾸기

 10진수로 된 정수를 입력 받아서 2진수 ~ 16진법의 수로 바꾸어 출력해 보세요.

 ◈ 입력 형식

10진법의 수 n을 입력받는다.

 ◈ 출력 형식

 변환된 진법을 출력한다.  숫자사이의 간격은 공백하나이다.

 ◈ 입력과 출력의

입력의 예 출력의 예
255

2 11111111
3 100110
4 3333
5 2010
6 1103
7 513
8 377
9 313
10 255
11 212
12 193
13 168
14 143
15 120
16 FF

 

[ 10진수를 2진수 ~16진수로 변환 - 소스 ]

#include <stdio.h>
void go(int, int);
int main()
{
	int n, i;
	scanf("%d" , &n);    // n을 입력 
	for(i=2;i<=16;i++)
	{
		printf("%d ", i);
		go(n, i);
		printf("\n");
	}
	return 0;
}
void go(int x, int j)
{
	if(x==0) return;        
	go(x/j, j); 
	if( x%j <= 10)
		printf("%d" , x%j);   
	else
		printf("%c", (x%j) + 55); 
}

※ 11진수부터는 10은 'A'로 11은 'B'로 12는 'C'로 13은 'D'로 14은 'E'로 15은 'F'로 출력해야 합니다. 대문자  'A'의 아스키코드가 65이고 대문자 'B'의 아스키코드가 66이기 때문에 +55를 해서 출력 [ (x%j)+55 ]해야 합니다.

 

[ 해결해야 할 문제 ]

(14915)  (10829)  (1212)  (1373)

Posted by 명문코딩컴퓨터
,