반응형
10진수를 2진수로 변환하는 다양한 방법들이 있습니다.
여기서는 배열을 이용해서 변환하는 방법을 사용했습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int dec, binary, cnt;
int b[33] = { 0 };
printf("10진수를 2진수로 변환\n");
while(1)
{
printf("\n정수입력(0,음수: 종료) : ");
scanf("%d", &dec);
// scanf_s("%d", &dec); // Visual Studio
if (dec <= 0) break;
printf("%d:\t", dec);
int i = 0;
while (dec > 0)
{
binary = dec % 2;
b[i] = binary;
dec = dec / 2;
i++;
}
cnt = i - 1;
for (i = cnt; i >= 0; i--)
printf("%d", b[i]);
printf("\n");
}
return 0;
}
위 코드는 배열의 앞에서 부터 저장하고, 출력을 반대로 하는 코드입니다.
이 코드를 배열의 뒤에서 부터 저장하고, 앞에서 부터 출력하도록 변경했습니다. 출력은 32비트 전체를 출력하기 때문에 앞 부분의 0이 모두 출력됩니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int dec, binary, cnt;
int b[33] = { 0 };
printf("10진수를 2진수로 변환\n");
while(1)
{
printf("\n정수입력(0,음수: 종료) : ");
scanf("%d", &dec);
// scanf_s("%d", &dec); // Visual Studio
if (dec <= 0) break;
printf("%d:\t", dec);
//int i = 0;
int i = 32;
while (dec > 0)
{
binary = dec % 2;
b[i] = binary;
dec = dec / 2;
i--;
//i++;
}
cnt = i - 1;
//for (i = cnt; i >= 0; i--)
for (i = 0; i<33; i++)
printf("%d", b[i]);
printf("\n");
}
return 0;
}
$ _
반응형
'C_C++' 카테고리의 다른 글
(C언어) 최대값 최소값 구하기 (1) | 2022.10.05 |
---|---|
(C/C++)정수와 실수 형식의 자료형 (0) | 2022.10.05 |
(C언어) qsort 함수를 이용한 숫자 정렬 (0) | 2022.10.04 |
(C언어) 선택 정렬 Selection Sort (0) | 2022.10.02 |
(C언어) 버블 정렬 Bubble Sort (0) | 2022.10.02 |