IT/공부

진수 변환

GaeGim 2022. 6. 24. 01:21
반응형
  • 2진수↔8진수

2→8

①2진수를 오른쪽부터 3자리씩 묶는다

ex) 0001 0101(2) → 000 010 101

 

②묶어준 영역을 10진수로 표현한다

ex) 000 = 0, 010 = 2, 101 = 5

 

③구한 수들을 더하지 말고, 영역 순서대로 합친다.

∴ 25(8)

 

 

 

8→2

①8진수 한 숫자당 2진수의 3자리 영역으로 간주한다.

ex) 60(8) → 6 = 110, 0 = 000

 

②구한 2진수 표현을 (숫자로 인식해서 더하지 말고 문자처럼 취급해서) 순서대로 영역을 합쳐준다.

ex) 110 000(2)

 

 


 

 

  • 2진수↔10진수

2→10

①순서대로 2의 n제곱 해준다. (n은 숫자의 갯수, n>=0)

ex) 0110 0011(2) (보기 편하게 4개씩 끊어준 것)

2진수 0 1 1 0 0 0 1 1
변환식
2진수 x 2^n
0 × 2 1 × 2 1 × 2 0 × 2 0 × 2³ 0 × 2² 1 × 2¹ 1 × 2⁰
결과값 0 64 32 0 0 0 2 1

② 모두 더해준다.

ex) 64 + 32 + 2 + 1 = 99

∴99(10)

 

 

 

10→2

① 10진수 수를 못 나눌 때까지 ÷ 2 해준다.

ex) 60(10)

÷ 60 나머지
2 30 0
2 15 0
2 7 1
2 3 1
2 1 1
2 0 1

 

② 마지막 순서의 몫 1개와 나머지를 아래서부터 위로 역순으로 읽어준다.

ex) 0111100(2)

 

 


 

 

  • 2↔16

2→16

① 2진수를 오른쪽부터 4자리씩 나눈다.

ex)  11000001(2) → 1100/0001

 

② 나눈 수를 10진수 변환시켜준다.

ex) 1100 → 12, 0001 → 1

 

③ 10진수 변환시켜준 것을 16진수로 변환시켜준다.

16 0 1 2 3 4 5 6 7 8 9 A B C D E F
10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

ex) 12/1 = 12 C, 1  1

∴ C1(16)

 

 

 

16→2

① 16진수를 수마다 나눠준다.

ex) FA(16) → F, A

 

나눠준 16진수를 10진수 변환시켜준다. (위 변환표 참고)

ex) F → 15,  A → 11

 

③ 나눠준 10진수를 2진수 변환시켜준다.

ex) 15 → 01111, 11 → 1011

∴ 11111011(2) 

 

 


 

 

  • 8↔10

8→10

① 8진수 수마다 8의 n제곱 해준다. (n은 숫자의 갯수, n>=0)

ex) 74(8)

8진수 7 4
변환식
8진수 × 8^n
7 × 8¹ 4 × 8
결과값 56 4

 

② 수를 모두 더해준다.

ex) 56 + 4 = 60

∴ 60(10)

 

 

 

10→8

① 10진수를 안 나눠질 때까지 ÷8 해준다.

ex) 60(10)

÷ 60 나머지
8 7 4

 

② 마지막 순서의 몫 1개와 나머지를 아래서부터 위로 역순으로 읽어준다.

ex) 74(8)

 

※10진수 8 이상의 수는 8로 표현 불가하다.

ex) 8(10) = 10(8),  15(10) = 17(8),  16(10) = 20(8)

 

 


 

 

  • 8↔16

8 → 16

① 8진수 수마다 2진수로 변환시켜준다.

ex) 57(8) → 5 = 101, 7 = 111

 

② 결과값 2진수를 8진수 수만큼 오른쪽부터 4자리씩 나눠준다.

101111 → 0010/1111

 

③ 4자리씩 끊어준 자리마다 2의 n제곱 해준다. (n>=0)

2진수 0 0 1 0 1 1 1 1
변환식
2진수 × 2^n
0 × 2³ 0 × 2² 1× 2¹ 0 × 2 1 × 2³ 1 × 2² 1 × 2¹ 1× 2
결과값 0 0 2 0 8 4 2 1

④ 4자리마다의 결과값을 더해준다.

ex) 2,  8 + 4 + 2 + 1 = 15

 

⑤필요에 따라 16진수 변환시켜준다.

ex) 2/15 → 2B

∴2B(16)

 

 

 

16 → 8

① 16진수 수마다 2진수로 변환시켜준다.

ex) D/A(16) → D = 1101, A = 1010

 

 결과값 2진수를 16진수 수만큼 오른쪽부터 3자리씩 나눠준다.

ex) 11011010 → 11/011/010

 

③ 3자리씩 끊어준 자리마다 2의 n제곱 해준다. (n>=0)

2진수 1 1 0 1 1 0 1 0
변환식
2진수 × 2^n
1 × 2¹ 1× 2 0 × 2² 1 × 2¹ 1× 2 0 × 2² 1 × 2¹ 0 × 2
결과값 2 1 0 2 1 0 2 0

 

④ 3자리마다의 결과값을 더해준다.

ex) 2 + 1 = 3,   2 + 1 = 3,  2

 

⑤필요에 따라 8진수 변환시켜준다.

ex) 3/3/2

∴ 332(8)

 

 


 

 

  • 10↔16

10 → 16

10진수를 안 나눠질 때까지 ÷16 해준다.

ex) 180(10)

÷ 180 나머지
16 11 4

② 마지막 순서의 몫 1개와 나머지를 아래서부터 위로 역순으로 읽어준다.

ex) 114

 

③ 16진수로 변환시켜준다.

※15이하의 수는 16진수 한 수로 읽을 수 있다.

ex) 114 → B4

∴ B4(16)

 

 

 

16 → 10

① 16진수 수마다 16의 n제곱 해준다. (n은 숫자의 갯수, n>=0)

ex) 5AF(16)

 

② 수를 모두 더해준다.

16진수 5 A F
변환식
16진수 × 16^n
5 × 16² A × 16¹ F × 16
10진수 1280 160 15

ex) 1280 + 160 + 15 = 1455

∴1455(10)

 

 


 

 

2진수8진수, 2진수→16진수를 구할 때 자리를 얼마나 나누는 지 헷갈린다면 참고할 수 있는 내용을 덧붙이며..

 

8진수는 0~7까지 표현이 가능하다. 따라서 2진수로 7을 표현하면 111이다.

 8진수로 표현할 수 있는 제일 큰 수가 7이고 그 수를 2진수로 표현한 것이 111이니,

8 이상의 수를 표현하려면 2진수로 4자리 이상의 수가 필요하다.

 

ex) 1000(2) = 10(8)

위 2진수를 보면 총 4자이니 3자씩 나누면 8진수로 두자리 수가 나오는 걸 알 수 있고

나눈 자리별로 진수 변환시켜주면 된다.

오른쪽부터 3자리씩 나누는데 나누다 만약 수가 3자리가 안된다면 부족한 자리부터 오른쪽으로 0을 추가해 주도록 한다.

 


 

16진수는 0~9까지의 수와 A~F까지의 문자로 로 총 16개의 수를 표현가능하다.

2⁴인 16가지 수를 표현하려면 적어도 2진수 4자리를 필요로 하기 때문에 4자리씩 끊어주는 것이다.

 

ex) 00010000(2) = 10(16)

위 2진수를 보면 총 8자이니 4개씩 나누면 16진수로 두자리 수가 나오는 걸 알 수 있고

나눈 자리별로 진수 변환시켜주면 된다.

오른쪽부터 4자리씩 나누는데 나누다 만약 수가 4자리가 안된다면 부족한 자리부터 오른쪽으로 0을 추가해 주도록 한다.

 

 

 

반응형