728x90
반응형
이진수를 십진수로 변환하는 방법은 각 이진수의 자릿값을 확인하고, 그 자릿값에 해당하는 2의 거듭제곱을 이용해 합산하는 방식입니다.
이진수에서 십진수로 변환하는 단계
1. 이진수의 자릿값을 확인: 오른쪽 끝(1의 자리)부터 각 자릿값을 계산합니다.

2. 1인 자릿수에 해당하는 2의 거듭제곱값을 모두 더합니다: 이진수에서 1이 있는 자릿수의 2의 거듭제곱을 합산하여 십진수로 변환합니다.
예시: 101110(이진수)
이진수 101110을 십진수로 변환하는 방법을 살펴보겠습니다.

1. 1이 있는 자리의 2의 거듭제곱값 계산:

2. 값을 모두 더합니다:
32+8+4+2=46
즉, 101110(이진수)는 46(십진수)가 됩니다.
이진수를 십진수로 변환하는 수식
이진수를 십진수로 변환할 때, n자리 이진수를 d(n), d(n-1), ..., d(0)이라 하면 변환된 십진수 값은 다음과 같이 계산됩니다.

C언어로 이진수를 십진수로 변환하는 방법
#include <stdio.h>
int main() {
int input = 101110; // 이진수 값 (십진수로 변환할 대상)
int di = 1; // 2의 거듭제곱값 (1의 자리부터 시작)
int sum = 0; // 십진수 값을 저장할 변수
while (input != 0) {
// 현재 자릿수의 값을 추출하고, 2의 거듭제곱을 곱한 값을 합산
sum = sum + (input % 10) * di;
di = di * 2; // 2의 거듭제곱 값을 업데이트
input = input / 10; // 다음 자릿수를 가져오기 위해 10으로 나누기
}
printf("십진수 값: %d\n", sum); // 결과 출력
return 0;
}
코드 설명:
- input: 이진수를 저장합니다 (101110).
- di: 2의 거듭제곱 값을 저장하는 변수로, 처음엔 20=12^0 = 1부터 시작하여 계속 2배씩 곱해나갑니다.
- sum: 십진수 변환 결과를 저장할 변수입니다.
- while 루프: input 값이 0이 될 때까지 반복해서 각 자릿수를 가져와 계산합니다.
- input % 10: 이진수의 현재 자릿수를 추출합니다.
- input / 10: 다음 자릿수로 이동하기 위해 input 값을 10으로 나눕니다.
'Category > 정보처리기사' 카테고리의 다른 글
| GROUP BY와 HAVING에 대한 설명 (0) | 2024.10.10 |
|---|---|
| 상속 관계에서 생성자 호출 순서 (0) | 2024.10.10 |
| 포트 번호란? (1) | 2024.10.10 |
| 네트워크 전송 기술과 주요 프로토콜 정리 (3) | 2024.10.10 |
| 웜 (Worm), 트로이 목마 (Trojan Horse), 바이러스 (Virus) (0) | 2024.10.10 |