반응형

(scanf 가 에러 발생시 아래 참고)

https://ansan-survivor.tistory.com/899

 

[Visual Studio 2019] 비주얼 스튜디오 2019 scanf_s 오류, scanf 사용하기 변경

예전에는 scanf 를 상용함에 있어 문제가 없었는데, 비쥬얼스튜디오가 계속업그레이드가 되면서 scanf_s를 사용하지 않으면 오류를 일으킨다. 따라서 이 에러를 해제 시키고 예전처럼 scanf를 사용

ansan-survivor.tistory.com

 

10진수 숫자를 2진수의 숫자로 변환시켜주는 코드

10진수값을 입력하면 2진수로 변환시켜준다.

#include <stdio.h>

/* 10진수를 2진수로 변환하기(goto문, for문 이용)*/
int main(void)
{
	unsigned int integer = 0, sub = 0, i = 0, k = 0, l = 0, m = 1, n = 0, s = 0;

	printf("10진수를 입력하세요 :");
	scanf("%d", &integer);


	if (integer < 0)
	{
		printf("10진수 양의 정수를 입력하세요 :");
		scanf("%d", &integer);
	}
	if (integer > 0)
	{
		printf("양의 정수 %d는 2진수로 ", integer);
	}

	l = integer;
	sub = integer;
	if (integer == 0)
	{
		printf("양의 정수 0은 2진수로 0입니다.");
	}
	else
	{
	loop:
		m = 1;
		for (i = 1; i >= 0; i++)
		{
			l = l / 2;
			m *= 2;
			if (l == 0)
			{
				printf("1");
				m = m / 2;
				sub = sub - m;
				break;
			}
		}

		n = sub;
		if (sub == 0)
		{
			for (i--; i > 0; i--)
			{
				printf("0");
			}
			l = sub;
			if (sub == 0)
			{
				goto end;
			}
			goto loop;
		}

		else
		{
			for (k = 1; k >= 0; k++)
			{
				n = n / 2;
				if (n == 0)
				{
					break;
				}
			}

			for (i--; i > k; i--)
			{
				printf("0");
			}
			l = sub;
			if (sub == 0)
			{
				goto end;
			}
			goto loop;
		}
	}
end:
	if (integer > 0)
	{
		printf("입니다.");
	}
	printf("\n");
	return 0;
}

(결과)

10진수의 값을 입력받음.

5입력시
24입력시

 

 

비트연산자를 이용한 코드 아래참고

https://ansan-survivor.tistory.com/906

 

[C언어] 비트연산자를 이용한 10진수를 2진수로 변환, decimal to binary

(scanf 가 에러 발생시 아래 참고) https://ansan-survivor.tistory.com/899 [Visual Studio 2019] 비주얼 스튜디오 2019 scanf_s 오류, scanf 사용하기 변경 예전에는 scanf 를 상용함에 있어 문제가 없었는데,..

ansan-survivor.tistory.com

 

 

 

 

반응형

+ Recent posts