진수 변환

2006/09/08 22:17

어떤 진수 이건...일단 문제가 나오면 10진수로 바꿔 보세요...
그리고 원하는 진수로 나누는 겁니다...
일단 모두 10진수로 바꿉니다. 바꾸는 방법은..
만약 수가 n진수라고 치면..
맨 오른쪽 자리가 n의 0승, 즉 1입니다.(십진법에서도 일의자리라고 하는..)
그 왼쪽이 n의 1승, 즉 10진법에서 말하는 10입니다. 5진법이라면 5의자리죠.
그 왼쪽이 n의 2승, .. 이런식이죠.
* a^b는 a의 b승을 말합니다.


★★★★★★★1101(2)를 10진수로 고치면
                                   ▲
                                     ||===2진수

1X2^3 + 1X2^2 + 0X2^1 + 1X2^0 (여기서 '2'가 들어가는 자리에 원래 숫자의 진수를 넣으면 됩니다.)
= 8+4+0+1 = 13 입니다.

★★★★★★★68(10)을 8진수로 고치려면 8로 계속 나누고 나머지를 기록하는 겁니다.
8 |68
 ----
8 | 8 ... 4  위에 있는 68을 왼쪽의 8로 나눴을 때 몫이 8, 나머지 4
 ----
  1 ... 0  위에 있는 8을 역시 8로 나눴을 때 몫이 1, 나머지 0
이제 1부터 위로 읽으면 됩니다. 8진수로 '104'가 되죠.
이런 식으로 수들을 10진수로 고친 다음 원하는 수로 변환시킬 수 있습니다.

%%%%%%%%%%%%★★★★★★★TIP★★★★★★★%%%%%%%%%%%

★★★★★★★1101₂를 10진수로 변환
2진법이므로
일의 자리 = 1, 십의자리 = 2, 백의 자리 = 4, 천의 자리 = 8이신건 아시죠??
2진법이라서 자리가 한칸 올라갈수록 2배씩 커지는 겁니다.
만약 삼진법이라면 십의자리 = 3이 되겠지요, 백의자리는 9가 될테고
주어진 수가 1101이므로
십의자리를 제외한 나머지숫자가 다 1이네요
식으로 정리하면
1*1 + 2*0 + 4*1 + 8*1 입니다
따라서 답은 13이 되네요

★★★★★★★(68)10을 8진수로 변환

10진법이므로, 우리가 그냥 알고있는 68로 생각합시다
진법을 바꾸는 문제의 유형은
n진법 -> 10진법 or
10진법 -> n진법 이 대부분입니다
여기서, 10진법 -> n진법으로 바꿀때에는
주어진 수를 n으로 일단 나눠보시면 됩니다
68을 예로들면, n진법에서의 n이 8이니까(8진법으로 바꾸라 했으므로)
8 | 68
8 | 8 ......4
8 | 1.......0
0.......1
이렇게, 나머지는 버리고, 몫만을 꼐속 나눠줍니다
그러면 오른쪽에 나머지를 보세요.. 4,0,1이죠??
이걸 거꾸로 읽습니다..
답은 104(8) 입니다