소프트웨어 공학용 수학

진수 변환 및 2진법, 8진법, 16진법

단점이없어지고싶은개발자 2022. 9. 18. 18:08
반응형

2진법 : 숫자가 2개. 0, 1 / 2개의 숫자만 사용.

  • 이진법으로 나타낸 수
  • 공학에서는 0b 혹은 0B를 붙임

8진법 : 숫자가 8개. 0, 1, 2, 3, 4, 5, 6, 7 / 8개의 숫자만 사용.

  • 컴퓨터 공학에서 자주 쓰이지는 않는다.

16진법 : 숫자가 16개. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

  • 공학에서는 0x 혹은 0X를 붙임

10진법을 2진수로 표현하는 법

9(10)을 2진수로 표현

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001

 

만약 10진수의 나타낼 수가 크다면?

 

14(10)을 2진수로 표현하면?

14 / 2 = 묷 7, 나머지 0

7 / 2 = 묷 3, 나머지 1

3 / 2 = 묷1, 나머지 1

 

묷이 1이 되면 멈춘다. 더이상 2로 나눌 수 없어서

그래서 마지막 묷부터 나머지를 역순으로 묶어주면 1110이 되고, 14를 2진수로 표현한 값이 된다.

 

그럼 반대로 2진수를 10진법으로 표현하면?

1110(2)을 10진수로 표현하면

1 * 2의 3승 + 1 * 2의 2승 + 1 *2의 1승 + 1 * 2의 0승 = 14

 

10진수를 8진수 변환

  • 2진수일 때와 동일

200 / 8 = 묷 25, 나머지 0,

25 / 8 = 묷 3, 나머지 1,

역순으로 310

 

8진수를 10진수로 변환

478(8)

= 4 * 8의 2승 + 7 * 8의 1승 + 8 * 8의0승

= 315

 

2진수를 8진수로 변환

  • 2진수를 세 자리씩 끊어서 8진수 한 자리로 변환

11110101101001(2)

뒤에서부터 3자리씩 끊으면

001, 101, 101, 110, 11

1, 5, 5, 6, 3 => 36551(8)

 

8진수를 2진수로 변환

  • 8진수의 각 자리를 세 자릿수의 2진수로 변환

713(8)

3 = 011

1 = 001

7 = 111

1110101011(2)

 

이렇게 쉽게 변환이 가능한 이유는?

  • 2와 8의 관계는 8 = 2의3승
  • 즉 8진수의 각 '한'자릿수는 2진수의 '세'자릿수와 동일함

 

2진수를 16진수로 변환

16 = 2의4승

  • 2진수의 네 자리씩 끊어서 하나의 16진수로 변환

11110101101001(2)

= 1001, 0110, 1101, 11

= 9, 6, D, 3

= 3D69

 

16진수를 2진수로 변환

  • 16진수의 각 자리를 네 자릿수의 2진수로 변환

A8F2(16)

= 1010, 1000, 1111, 0010

= 1010100011110010(2)

 

8진수를 16진수로 변환

곧바로 변환이 쉽지 않음.

8진수를 2진수로 변환 후, 16진수로 변환시킨다.

 

210(8)

= 010 001 000(2)

= 0 1000 1000(2)

= 88(16)

반응형