C C++ language
C언어 십진법 이진법 변환기 구현하는 방법 [with source]
KMS studio
2021. 4. 10. 13:00
읽어주셔서 감사합니다.
오늘은 십진법을 이진법으로 변환하는 프로그램을 구현해보겠습니다.
(참고로 이 블로그는 초보자의 입장에서, 이해가 쉽도록 쓰는 글입니다. 고로 이진법 변환기의 성능은 떨어집니다.)
구조
이 프로그램은 아래 블로그의 진법 변환 방법 중 4번에 해당하는 방법을 통해 진법 변환을 할 예정입니다.
컴퓨터언어로 진법 변환을 배울때 아마 이 방법을 제일 먼저 배우실 꺼에요
+ 그냥 "이진법 변환 방법"지면 첫번째로 뜬 블로그를 가져온 겁니다.
blog.naver.com/yskim004/222130791544
025. 십진법 숫자의 2진법 변환 방법
025. 십진법 숫자의 2진법 변환 방법진법 변환은 곱셈과 나눗셈(지수)의 원리를 활용한 것 우리가 일상적으...
blog.naver.com
코드
사실 "초보자의 입장에서"라고 말하기는 했는데뇌가 이미 최적화에 쩔어있는지 뇌가 굳었는지 모르겠지만 소스가 꽤 어려워진것 같아요예외만 잔뜩 만들고 정작 소스가 클린하지 않은 것 같아서 고민입니다.
소스가 필요하신 분들은 Ctrl + C Ctrl + V로 퍼가시면 됩니다
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num, idx = 0;
int value[32] = { 0, };
scanf("%d", &num);
if (num == 0) { printf("0"); } // 만약 num이 0이면 그대로 0을 출력
else {
while (num != 0) { // 이진법의 계산 과정에서 계속해서 2로 나누고, 나머지를 기록하는 과정
value[idx++] = num % 2; // num & (int)1
num /= 2; // num >> 1
}
for (idx--; idx >= 0; idx--) { // 기록한 나머지를 차례대로 기록하는 과정
printf("%d", value[idx]);
}
}
printf("\nprogram end\n");
return 0;
}
사용방법
입력 : 정수 + enter ( 입력한 정수는 항상 음수가 이니어야 합니다. )
출력 : 입력한 숫자의 이진법 표기를 출력
종료 : 출력후 종료
실행화면
appendix
예전에 파이썬 입문을 해볼때 (지금은 잠시 접었지만)구현한 exe파일이 있어서 그것도 올립니다이건 옛날 네이버 블로그레 있고, KMS signature에는 개선이 "큰"폭으로 된다면 올릴 의향이 있습니다