2진수-> 10진수로 변경
2024. 3. 11. 17:58ㆍ카테고리 없음
반응형
#include <stdio.h>
int main() {
int input = 101110;
int di = 1;
int sum = 0;
while (1) {
if (input == 0) break;
else {
sum = sum + (input % 10) * di; // 2진법 자릿수를 곱하여 더한다.
di = di * 2; // 자리 값을 2로 곱하여 증가시킨다.
input = input / 10; // 가장 오른쪽 자릿수를 제거한다.
}
}
printf("%d", sum); // 변환된 10진법 값을 출력한다.
return 0;
}
while (1) 은 무한 루프를 의미한다. `break` 문이 호출될 때까지 계속 실행된다.
- `if (input == 0) break;`는 `input`이 `0`이 되면 루프를 종료한다.
- `di = di * 2;`는 자리 값을 두 배로 증가시킨다. 이는 2진법 변환에서 사용하는 방식이지만 여기서는 논리적 오류가 있다. 5진법 변환을 위해서는 `di`가 5씩 곱해져야 한다.
- `input = input / 10;`은 `input`의 가장 오른쪽 자릿수를 제거한다.
반응형