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에는 개선이 "큰"폭으로 된다면 올릴 의향이 있습니다

tomskang naver blog - python3