반응형
Recent Posts
Recent Comments
Link
관리 메뉴

공머씨의 블로그

내가 공부한 논리회로 4. Number system 2(수 체계-conversion between Number) 본문

내가 공부한 3학기 전공/내가 공부한 논리회로 설계

내가 공부한 논리회로 4. Number system 2(수 체계-conversion between Number)

공머씨 2020. 3. 27. 17:29
반응형

저번 시간에 이어서 진법 변환 중 8진수와 16진수간의 상호 변환하는 법을 공부해보겠습니다.

 
+ 지금까지 공부한내용은 아래 그림과 같습니다.

 
 
 
 
 

이번에 공부할것은 8진수와 16진수간의 상호변환입니다.
화살표로 표현했듯이 8진수를 16진수로 바로 바꾸는 것이 아니라 2진수로 바꾼 다음에 (Ungrouping) 그 2진수를 16진수로 바꾸어주는 것입니다.(Bit groping)
 
16진수를 8진수로 바꾸는 과정도
16진수를 2진수로 바꾼다음에 (Ungrouping) 그 2진수를 8진수로 바꾸어주는 것입니다.(Bit groping)

 
아래에서 차근차근 알아보겠습니다.
 
 


7. 8진수를 16진수로 변환하기

위와 같은 8진수 14.5 가 있습니다.
설명과 이해의 편리를 위해 숫자에 번호를 부여했습니다.
8진수를 2진수로 바꾼 뒤 2진수를 16진수를 바꾸는 방법이 있습니다.
8진수를 16진수로 바로 변환할 수가 없습니다. 각각 3bit, 4bit로 Ungrouping 할 수 있기 때문입니다.
1.8진수를 이진수로 바꾸기

첫 번째 숫자는 8진수 1입니다.

1을 이진수로 바꾸면 1입니다.
이를 3bit 형태로 표현을 해주면 001이 됩니다.
 
 

두 번째 숫자는 8진수 4입니다.

4를 이진수로 바꾸면  100입니다.
2의 2승이니까 자릿수가 바뀌자마자 나타나는 숫자임을 바로 알 수 있습니다.
 
 
 
 

세 번째 숫자는 8진수 5입니다.

4가 100 이니까 
5는 101이라는걸 쉽게 알 수 있습니다.
 
 
 
지금까지 8진수를 이진수로 바꾸는 과정이었습니다.
 


2. 이진수를 16진수로 바꾸기

위에서 8진수를 이진수로 바꾸는 과정을 조합해보면 아래 그림과 같습니다.

이제 2진수로 바꾼 숫자를 가지고 16진수로 바꾸어 보겠습니다.
이진수를 16진수로 바꾸는 것은 이전에 공부를 했습니다.
4bit씩 묶어서 Ungrouping 하면 됩니다.
아래 그림과 같이 묶어 줍니다.

설명과 이해가 편리하도록 4bit 단위의 숫자 밑에 번호를 부여했습니다.

첫 번째 숫자는 1100입니다.

이진수 1100은
이전 숫자들로부터 카운트해보면 1000 1001 1010 1011 1100
 
1100 다음 숫자들로 카운트해보면 1100 1101 1110 1111 
이므로 1111로부터 카운트 다운하는 방법으로 1100이 십진수로 몇인지 알아보겠습니다.
1111은 자릿수가 모두 1로 꽉 차있으므로 다음 숫자는 10000이고 이는 다섯 자리 숫자입니다.
10000은 2의(5-1) 승 2^4승 즉 16이고 1111은 15가 됩니다.
그러면 1100 1101 1100 은 차례로 14 13 12 가 되겠습니다.
 
십진수로 12가 16진수로 뭐죠???
10  11  12   13  14 15
A    B    C    D   E   F 이므로 
C라는 것을 알 수 있습니다.
 


두 번째 숫자는 1010입니다.

1010 이전 숫자는 1000 1001 1010
1010 다음 숫자는 1011 1100 1101 1110 1111입니다.
카운트 다운해서 1010이 십진수로 몇인지 알아보겠습니다.
1000은 2의 (4-1) 승이라서 8입니다.
1001 1010 은 차례로 9,10 이 됩니다.
십진수로 10> 16진수로 A가 됩니다.
따라서 최종적인 답은 아래와 같습니다.

소수점 , 변환한 뒤 아래 첨자에 몇 진법인지 쓰는 것을 잊지 말기 바랍니다.


 

 

 

8. 16진수를 8진수로 변환하기

1.16진수를 4bit씩 Ungrouping 해서 이진수로 변환시킵니다.
2. 그런 뒤에 순서대로 정렬하고  3bit씩 Bit grouping과정을 거쳐서 8진수로 변환시켜주면 됩니다.

 
위와 같은 숫자를 Ungrouping , Bit grouping 하는 과정을 거쳐서  8진수로 변환해보겠습니다.
 
 

1. Bit grouping

 

첫 번째 숫자는 16진수로 4입니다.

4를 4bit로 Ungrouping 해서 2진수로 바꾸어 보겠습니다.
4는 2의 승수이므로 자릿수가 바뀐 첫 상태입니다. 
2의 2승이 4이므로 자릿수는 (2+1) 즉 3 자릿수이면서 자릿수가 바뀐 상태이므로 
100이 되는데
이를 4Bit로 표현하면 0100이 됩니다.
 

 


두 번째 숫자는 16진수로 1입니다.

0001 임을 금방 알 수 있습니다.
 
 


세 번째 숫자는 16진수로 2입니다.

0010임을 금방 알 수 있습니다.
 


네 번째 숫자는 16진수 A입니다.

10진수로 바꾸면 10이므로 
10을 2진수 4Bit로 변환해보겠습니다.
8에서 자릿수가 4 자릿수 이면서 바뀌므로 
1000 1001 1010의 순서대로
8,9,10 따라서 16진수 A는 이진수로 1010이 됩니다.
또 이렇게 하지 않아도 십진수 10은 이진수로 1010 임을 외우기 쉬우므로 외워두라고 했습니다.
 
 
 


 

 

 

두 번째 단계로 위의 2진수를 3bit씩 Bit grouping 하는 과정을 거쳐서 8진수로 나타내 보겠습니다.

 

첫 번째 숫자는 2진수 001입니다.

십진수로 1이고 8 진수로도 1 입니다.

 
 
 


두 번째 숫자는 2진수 000입니다.

십진수로 0, 8진수로도 0 입니다.

 
 


세 번째 숫자는 2진수 001입니다.

10진수로 1, 8진수로 1 입니다.

 
 
 
 


네 번째 숫자는 2진수 001입니다.

10진수로 1, 8진수로 1 입니다.
 
 
 


다섯 번째 숫자는 2진수 010입니다.

10진수로 2, 8진수로 2입니다.
 

 
 


여섯 번째 숫자는 2진수 100입니다.

꽉 차있는 수이면서 자릿수가 3개 이니까
2의 3승 -1= 3
3이라는 것 을 알 수 있습니다.

 
 
 
 
 
여섯 가지 숫자들을 순서대로 조합하면 아래와 같이 8진수로 변환된 숫자가 나옵니다.
 
 

 도움이 되셨다면 로그인이 필요없는 하트버튼 한번 부탁드립니다!!

반응형
Comments