이번에는 2진수를 8진수와 16진수로 변환하는 방법과
8진수,16진수를 2진수로 변환하는 방법을 알아 봅니다.
1. 2진수를 16진수로 변환하기.
2진수로 데이터가 저장되는 정보의 최소 단위인 비트가 4개 모이면 16진수 한 자리에 해당됩니다.
즉, 아래와 같이 4비트에 메모리에 저장할 수 있는 최대값은 15 가(16진수 f) 됩니다
1 | 1 | 1 | 1 |
(1 * 23) + (1 * 22) + (1 * 21) + (1 * 20) = 15(10진수) = F(16진수)
따라서 2진수 4자리는 16진수 한자리에 해당되므로
아래와 같은 2진수를 16진수로 변환 할때는 4자리씩 끊어서 16진수 한자리로 변환하면 됩니다.
11011111 = 1101 1111 = DF 가 됩니다.
또한 4자리로 끊었을때 자리수가 부족하면 0으로 채워서 계산하면 됩니다.
1101111 = 0110 1111 = 6F 가 됩니다.
그리고 소수점을 포함한 2진수도 마찬가지 개념으로 변환하면 됩니다.
1011.011 = 1011 . 0110 = B.6 가 됩니다.
2. 2진수를 8진수로 변환하기
위의 개념과 완전 동일합니다.
2진수 비트 3개는 8진수 한자에 해당 됩니다.
1 | 1 | 1 |
(1 * 22) + (1 * 21) + (1 * 20) = 7(10진수) = 7(8진수)
따라서 2진수 3자리는 8진수 한자리에 해당되므로
아래와 같은 2진수를 8진수로 변환 할때는 3자리씩 끊어서 8진수 한자리로 변환하면 됩니다.
100101= 100 101 = 45 가 됩니다.
또한 3자리로 끊었을때 자리수가 부족하면 0으로 채워서 계산하면 됩니다.
10101 = 010 101 = 25 가 됩니다.
그리고 소수점을 포함한 2진수도 마찬가지 개념으로 변환하면 됩니다.
100101.1011 = 100 101 . 101 100 = 45.54 가 됩니다.
2진수를 8진수,16진수를 변환하는 방법에 대해 위에서 살펴 봤습니다.
그러면 그 역은, 8,16진수를 2진수로 변환하는 방법은 그저 먹기지요??
위 개념을 역으로 하면 될테지요..
별도의 설명이 필요 없겠으나 하나씩만 해 봅니다.
1. 16진수를 2진수로 변환하기
위에서 사용한 수를 가지고 해 봅니다.
위에서 2진수를 16진수로 변환할때 아래와 같았습니다.
11011111 = 1101 1111 = DF
16 진수 DF를 2진수로 변환할려면 16진수 한자리는 2진수 4자리에 해당되므로
D F = 13 15 = 1101 1111 가 됩니다.
소수점을 가지는 16진수도 완전히 동일하겠지요.. 예는 생략 합니다.
2. 8진수를 2진수로 변환하기
역시 위에서 사용한 수를 가지고 해 봅니다.
위에서 2진수를 8진수로 변환할때 아래와 같았습니다.
100101= 100 101 = 45
8진수 45를 2진수로 변환할려면 8진수 한자리는 2진수 3자리에 해당되므로
4 5 = 100 101 가 됩니다.
#출처 : http://www.mkexdev.net/Article/Content.aspx?parentCategoryID=2&categoryID=9&ID=100
#작성자 : 박종명
8진수를 16진수로 변경하려면 주어진 8진수를 10진수 16에 해당하는 20(8)로 나누고 몫과 나머지를 나란히 쓰시면 됩니다 (10진수 -> 2진수의 방법과 동일) 그래서 나머지를 차례대로 쓰면 그게 답입니다.
하지만 만약 그것이 혼동되어 하지 못한다면 10진수나 2진수로 바꿔놓고 하여야 합니다.
346720(8) / 20(8)을 풀어서 몫과 나머지를 구할 줄 안다면 이 방법으로 변환가능.