IT 프로그래밍/논리회로

[논리회로] 진법(2진수, 16진수, 8진수, 10진수)

기술1 2024. 4. 3. 14:35
반응형

진법 소개

10진수 2진수 8진수 16진수
0 0000 00 0
1 0001 01 1
2 0010 02 2
3 0011 03 3
4 0100 04 4
5 0101 05 5
6 0110 06 6
7 0111 07 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

이런식으로 각 진법을 바꿔줄 수 있습니다. 

 

8진수는 0~7까지의 8개의 수로 표현을 한 것이며 16진수는 0~9 그리고 A~F까지의 16개의 기호로 표현한 것입니다.

 

각 진수의 변환

 

1) 2진수 - 10진수 간 상호 변환

 

2진수의 각 비트별 가중치를 구하여 모두 더한다.

ex) 110010.011 = 1 * 2^5 + 1 * 2^4 + 1 * 2^1 + 1 * 2^-2  + 1 * 2^-3

= 32 + 16 + 2 + 0.25 + 0.125

= 50.375

 

2) 8진수 - 10진수로 변환
8진수를 10진수로 변환하는 방법은 각 자리의 숫자에 8의 거듭제곱을 곱한 후 모두 더하는 것입니다.

37 (8) = 3 × 8 + 7 × 1 = 24 + 7 = 31 (10)

475.26 (8) = 4 * 8^2 + 7 * 8^1 + 5 * 8^0 + 2 * 8^-1 + 6 * 8^-2 = 317.34375

 

3) 16진수를 10진수로 변환

각 자리의 숫자에 16의 거듭제곱을 곱한 후 모두 더합니다.

A91.CD (16) = A * 16^2 + 9 * 16^1 + 1 * 16^0 + C * 16^-1 + D * 16^-2 = 2705.80078125

 

4) 10진수를 2진수로 변환 

정수부분과 소수부분으로 나누어 변환합니다. 정수부분은 2로 나누고 소수부분은 2를 곱합니다. 10진수 75.6871를 2진수로 변환 

10진수의 대부분의 소수부분은 위의 사진처럼 정확한 2진수로는 반환이 되지 않습니다. 

 

4) 10진수를 8진수로 변환

정수부분과 소수부분을 따로 떼어내서 구해줘야 합니다. 

정수부분을 계속해서 8로 나누어줘서 나온 나머지를 역순으로 적어주면 됩니다. 

 

소수부분은 소수에 계속해서 8을 넣어줘서 나온 정수부분을 0이 나올 때까지 적어주면 됩니다. 이렇게 딱 떨어지는 수는 그렇게 많지 않습니다. 

 

위와 같이 16진수와 5진수 또한 이런 방식으로 구해주시면 됩니다. 

반응형