중학교때 마스터 했던건데...다 기억에서 사라진 계산법.T_T
최근 ADM 파일 생성하면서, 레지스트리 만지다보니, 진수 계산법을 다시 익혀야 되었었다..
(공부는 역시 계속 해야되는거 같구나.)
내용 출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=111&docId=113035191&qb=7Lu07ZOo7YSwMuynhOyImA==&enc=utf8§ion=kin&rank=6&search_sort=0&spq=1&sp=1&pid=RmTTuF5Y7vVssbZT728sssssssG-102817&sid=UhWURXJvLDIAACOLIPg
모든 진수변환은 2진수를 중간단계로 거처간다고 생각하시면 편합니다.
1. 2A7(16)→10진수
16진수는 2진수 4개의 모임이라고 할수 있어요. 4개씩 풀어서 나열해봅니다.
(16진수) -> 2 / A(10) / 7
(2진수) -> 0010 1010 0111
(가중치)-> 8421 8421 8421
이렇게 바꿀수 있죠. 이건 아시나요?
2진수 4자리는 가중치가 8421 8421 8421 이렇게 진행되고, 2,A,7을 만들때 해당되는비트는 1로 두면 되요
A~F는 10~15을 나타내는것도 아셔야하고요
일단이렇게 2진수로 바꿨으면 그다음부터는 10진수로 바꿔야하는데요
맨오른쪽부터 왼쪽으로 1 2 4 8 16 32 64 128 256 이렇게 가중치가 되는거예요 2배씩...
(2진수) -> 0010 1010 0111
(10진수) -> 1 + 2 + 4 + 32 + 128 + 512 = 679
2.164(10)→ 2진수
10진수를 X진수로 변환하실려면 X로 계속 나눠주시면되요.
즉 10진수를 8진수로 변환하시려면 8로 나누고, 16진수로 변환하시려면 16으로 나누시면 되는거죠.
10진수를 2진수로 변환하실꺼면
계속 2로 나누시고 나머지를 적으시면 되는데요.. 이렇게....
164
2 | 82 --- 0
2 | 41 --- 0
2 | 20 --- 1
2 | 10 --- 0
2 | 5 --- 0
2 | 2 --- 1
2 | 1 --- 0
그다음 빨갛게 표시된 "나머지"를 아래에서 위로 순서대로 읽어가시면되요
(2진수) -> 1010 0100
이렇게 나오는데요. 맞는지 틀리는지 확인해 보실려면 아까 위에 제가 말씀드린대로
2진수는 오른쪽에서부터 왼쪽방향으로 1 2 4 8 16 32 64... 이렇게 가중치가 된다고 말씀드렸죠?
4 + 32 + 128 = 164
맞네요 ^^
3. 236(8) → 16진수
8진수는 한자릿수당 2진수 3개씩으로 구성되어 있는거예요,
아까 16진수는 4개씩 구성되어 있어서 8421 8421 8421....이렇게 가중치 있었다고 했잖아요?
8진수는 3개니까 421....421.....421.... 이렇게 가중된다고 보시면 되요
(16진수) 2 / 3/ 6
(2진수) 010 / 011 / 110
2진수로 변환된것을 붙여서 나열해보면 010011110 이렇게 나오는데요
이것을 기준을 오른쪽을 시작점으로 해서4개씩 나눠주면 16진수가 되요
(2진수) 0 , 1 0 0 1 , 1 1 1 0
(16진수) 0 /1001 / 1110 = 9E(16진수)
★정리
1. 10진수를 X진수로 변환하려면 X진수로 나눠주고 나머지를 아래서 위로 거꾸로 읽는다.
2. 16진수에서 8진수로 변환하거나, 16진수에서 2진수로 변환하거나, 2진수에서 8진수로 변환하거나...
이 관계를 명확히 아실려면
16진수는 2진수 4칸
8진수는 2진수 3칸
이것만 아시면 됩니다.
3. 16진수 -> 8진수는 직접 변환하기 힘드므로 2진수를 중간에 거쳐서..
16 -> 2 -> 8 이렇게 하시는거죠. 즉
16진수 자리당 4칸씩분해해서 2진수로 풀어서 만든다음
그것을 다시 , 오른쪽을 기준으로 3칸씩 합체시키면 8진수가 되는겁니다..