ET의 공부/C언어 연습문제[ 코드업 ]
[C언어 코드업 문제풀이] CodeUp 1416 : 2진수 변환
이티의 골방
2020. 4. 7. 08:30
코드업 1416번 2진수 변환 문제 풀이 해답입니다.
1. 문제 설명
어떤 10진수 n이 주어지면 2진수로 변환해서 출력하시오.
예)
10 -----> 1010
0 -----> 0
1 -----> 1
2 -----> 10
1024 -----> 10000000000
2. 입력
10진수 정수 n이 입력된다.
(n은 21억이하의 임의의 수이다.)
3. 출력
2진수로 변환해서 출력한다.
4. 입력 예시
7
5. 출력 예시
111
6. 문제 풀이
#include<stdio.h>
int main(){
int i_num;
scanf("%d",&i_num);
int bin_arr[1000] = {};
int i_Cnt = 0;
for(int i=0; i_num > 0; i++ ){
bin_arr[i] = i_num % 2;
i_num /= 2;
i_Cnt++;
}
i_Cnt -= 1;
if(i_Cnt < 0){printf("%d",bin_arr[0]);}
else{
for(int j = i_Cnt; j>=0; j--){
printf("%d",bin_arr[j]);
}
}
return 0;
}
|
for(int i=0; i_num > 0; i++ ){
bin_arr[i] = i_num % 2;
i_num /= 2;
i_Cnt++;
}
를 통해 2진수를 구할 수있습니다.
만약 5를 이진수로 변환하면 101 가 되는데
5%2의 나머지 1이 남고 입력된 5는 /2를 해서 2가됩니다.
그 후 2%2는 0이되고 2/2는 1, 1%2의 나머지는 1 i_num > 0 이므로 101로 반복이 종료됩니다.
101은 거꾸로 해도 101이지만 배열에는 [1] [00] [100] 이 들어있으므로 반대로 출력해주어야 합니다.