본문 바로가기

C C++ language

C언어 십진법 이진법 변환기 [with source]

사진출처: © rawpixel, 출처 Unsplash

안녕하세요 오늘은 십진법 to 이진법 계산기를 만들어 보았습니다.

소스코드 보겠습니다.


소스코드

source.cpp

#include <stdio.h>
#include <string.h>
#include <math.h>

#define PLUS		'+'
#define MINUS		'-'

#define BIT			64

int main(void) {
	long long num;
	bool bin[BIT] = { 0, };
	char sign;
	int i;
	int UsedMaxBit;
	bool CDel = true;
	while (true) {
		num = 0;
		memset(bin, 0, sizeof(bin));
		CDel = true;
		UsedMaxBit = 0;

		printf("num : ");
		scanf("%lld", &num);

		if (num == 0) {
			printf("binary : 0 0000000\n");
			break;
		}


		(num > 0) ? sign = PLUS : sign = MINUS;

		for (i = 7; num > (powl(2, i) - 1); i += 8) { 
			;
		}
		UsedMaxBit = i;

		if (sign == MINUS)
			num *= -1;

		for (i = (BIT - 1); num; i--) {
			(num % 2) ? bin[i] = 1 : bin[i] = 0;
			num /= 2;
		}

		if (sign == MINUS) {
			for (i = 0; i < BIT; i++)
				bin[i] = !bin[i];
			for (i = (BIT - 1); bin[i] != 0; i--)
				bin[i] = 0;
			bin[i] = 1;
		}

		printf("binary : ");
		printf("%d ", bin[0]);

		for (i = ((BIT-UsedMaxBit)); i < BIT; i++) {
			printf("%d", bin[i]);
			if (!((i + 1) % 8))
				printf(" ");
		}

		printf("\n");
	}

	return 0;
}

입력 : 아무 숫자를 십진법으로 입력 *(음수 포함) *(정수)

출력 : 숫자를 이진법으로 변환해

+a : 0을 입력하면 종료


실행 결과

입력 : 십진수

출력 : 이진수

이상으로 tomskang의 C 프로그래밍 - 십진수to이진수 변환 프로그램을 마칩니다.

next

tomskang의 다른 프로그램

이진법 암호 변환 프로그램 : blog.naver.com/tomskang/221401160313

 

이진법 암호 변환 프로그램

안녕하세요 tomskag입니다. 이번에는 이진법 암호 프로그래밍을 해볼 겁니다. 그런데 제 생각이지만, 이런 ...

blog.naver.com

이진법 암호 해독기 : blog.naver.com/tomskang/221401929402

 

이진법 암호 해독기

안녕하세요 tomskag입니다. 오늘은 지난번에 만들어본 이진법 암호를 해독할 수 있는 프로그램을 만들어 볼...

blog.naver.com