C언어 \ C++
[C언어] 10진수를 2진수로 변환, decimal to Binary code
안산드레아스
2021. 9. 19. 22:03
반응형
(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진수의 값을 입력받음.
비트연산자를 이용한 코드 아래참고
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
반응형