(ComputerArchitecture) 진법 변환

10진법 (99)다음에 (100)이 되는 것처럼
16진법 (FF)다음에 (100)이 된다.

<진법 변환>
M*B^E으로 나타내면

M(가수:significand)라고 하며 10진법에서는 0~9의 값을 갖고, 2진법 에서는 0~1, 8진법에서는 0~7, 그리고 16진법에서는 0~F의 값을 갖는다.

B(기수:Base)는 10진법에서는 10, 2진법에서는 2, 8진법에서는 8, 16진법에서는 16이 된다.
그리고 E는 지수(Exponenet)라고하며 정수의 값을 갖는다.



1. <2진법과 8진법 간의 변환>
2진수를 3비트 단위로 분할하고, 각 3비트를 10진수로 변환한다. 어차피 3비트 2진수는 0~7사이 이기 때문이다.
예)
(110010111110)-->(110 010 111 110)-->(6 2 7 6)이다.

2. <8진법과 2진법 간의 변환>
각 자리의 8진수를 3비트의 2진수로 변환한다.
예)
(1374)-->(001 101 111 100)이 된다.

3. <2진법과 16진법 간의 변환>
2진수를 4비트 단위로 분할하고,각각의 4비트 들을 10진수로 변환한다. 이것을 다시 16진수로 변환한다.
예)
(0011 0010 1111 1000)-->(3 2 15 8)--->(32F8)

4. <16진법과 2진법 간의 변환>
16진수에서 10진수로 변환하고  다시 2진수로 변화한다.
예)
(C 4 D 2)---->(12 4 13 2)---->(1100 0100 1101 0010)

5. <8진법과 16진법 간의 변환>
8진수와 16진수는 모두 2진수를 좀 더 편하게 표현하기 위해 만들어졌다. 그래서 중간에 2진수 변을 경유해서 수행하는 것이 편리하다.
8진수를 3비트 단위 2진수로 변환하고 다시 4비트씩 분할해 16진수로 변환한다.
예)
(5323)--->(101 011 010 011)

변환된 2진수를 4비트 단위로 재분할하고 10진수로 변환한다.
(101 011 010 011)-->(1010 1101 0011)--->(10 13 3)

10진수를 16진수로 변경한다.
(AD3)

6. <16진법과 8진법 간의 변환>
16진수를 10진수로 변환하고 변환된 10진수를 각 자리별로 4비트의 2진수로 변환한다.
변환된 2진수를 3비트씩 재분할하고 8진수로 변환한다.

예)
(4 B 2)-->(4 11 2)-->(0100 1011 0010)--->(010 010 110 010)--->(2262)

댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기