진수 변환 및 2진법, 8진법, 16진법
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)