십진법(decimal)은 일반적으로 사용하는 표기법이다.
아라비아 숫자 0,1,2,3,4,5,6,7,8,9 총 10개의 숫자를 이용해 표기한다.
각 자리는 9 다음 0이 되고 왼쪽 자리에 1이 추가되어 10이 된다.
9보다 큰 숫자가 없기 때문에 자리가 하나 추가된다.
따라서 10진법이라고 하는 것이다.
예를 들어 2진법은 0,1로만 각 자리를 표기할 수 있고 8진법은 0,1,2,3,4,5,6,7로만 표기가 가능하다.
173은 10진수로 보면 다음과 같다.
173 = 1 x 10^2+ 7 x 10^1 + 3 x 10^0 (0이 아닌 수의 0 제곱은 1이다)
각 자리는 0~9의 숫자로만 있고 각 자리마다 10의 거듭제곱으로 표현할 수 있다.
오른쪽 끝에서부터 10의 0 제곱, 10의 1 제곱, 10의 2 제곱으로 각 자리는 10의 n제곱으로 표기가 가능하다.
이진법(binary)은 0,1을 이용해 표현하는 방법이다.
주로 컴퓨터에서 사용하는 방법이다.
십진법과 마찬가지로 각 자리는 2의 거듭제곱으로 표기할 수 있다.
예)
- 9 = 1 x 2^3 + 0 x 2^2 + 0 x 2^1 + 1 x 2^0
- 173 = 1 x 2^7 + 0 x 2^6 + 1 x 2^5 + 0 x 2^4 + 1 x 2^3 + 1 x 2^2 + 0 x 2^1 + 1 x 2^0
9를 2진법으로 표기하면 1001이 된다.
173을 2진법으로 표기하면 10101101이 된다.
십진수을 이진수으로 바꾸기
간단한 방법으로는 십진수를 2로 나누고 나머지를 역순으로 읽는 것이다.
ex)
120을 2진수로 바꾸기
1. 120 / 2 = 60 + 0
2. 60 / 2 = 30 + 0
3. 30 / 2 = 15 + 0
4. 15 / 2 = 7 + 1
5. 7 / 2 = 3 + 1
6. 3 / 2 = 1 + 1
7. 1 / 2 = 0 + 1
즉 120을 2진수로 바꾸면 1111000이된다.
173를 2진수로 바꾸기
1. 173 / 2 = 86 + 1
2. 86 / 2 = 43 + 0
3. 43 / 2 = 21 + 1
4. 21 / 2 = 10 + 1
5. 10 / 2 = 5 + 0
6. 5 / 2 = 2 + 1
7. 2 / 2 = 1 + 0
8. 1 / 2 = 0 + 1
즉 173를 2진수로 바꾸면 10101101이 된다.
2진수를 10진수로 바꾸는 방법
각 자리를 2^n을 곱해서 더하면 된다. n은 오른쪽 끝에서 0으로 시작해 왼쪽으로 갈떄 +1를 하면 된다.
10101101 => 1 x 2^7 + 0 x 2^6 + 1 x 2^5 + 0 x 2^4 + 1 x 2^3 + 1 x 2^2 + 0 x 2^1 + 1 x 2^0
==> 128 + 0 + 32 + 0 + 8 + 4 + 0 + 1 = 173
16진법( hexadecimal)은 총 16개의 문자로 표현하는 방법이다.
그러나 아라비아 숫자는 0,1,2,3,4,5,6,7,8,9 총 10개뿐이다.
그래서 A, B, C, D, E, F를 이용해 표현한다.
10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F
10진수를 16진수로 바꾸는 것 또한 2진수로 바꾸는 법처럼 하면 된다.
ex)
173을 16진수로 바꾸기
1. 173 / 16 = 10 + 13
2. 10 / 16 = 0 + 10
즉 173을 16진수로 바꾸면 AD가 된다.
그러나 16진수는 2^4제곱이므로 2진수를 뒤에서 부터 4자리씩 묶어서 표기할 수도 있다.
ex)
173 은 2진수로 10101101가 된다.
10101101을 뒤에서부터 4자리씩 끊으면 1010 1101이 된다.
1010 = A, 1101 = D 이다.
따라서 173은 16진수로 AD가 된다.
번외?)
10진수를 n진수로 바꾸기
어떤 10진수를 n으로 나누면 나머지(r)은 0 ≤ r <n 이된다.
또한 n진수는 각 자리를 0~(n-1)로 표기한다.
따라서 어떤 10진수를 n으로 나눈 나머지로 n진수를 표기할 수 있다.
(단 n ≥ 11 이면 각 자리에 대응하는 문자를 새로 지정해야한다.)
10진수를 n으로 나눈 나머지를 순서대로 모아서 역순으로 읽으면 n진수를 만들 수 있다.
'개발관련 > 정리' 카테고리의 다른 글
IDE (Integrated Development Environment)가 뭘까? (0) | 2024.03.25 |
---|---|
프레임워크와 라이브러리의 차이 (0) | 2024.03.21 |
프레임워크 (0) | 2024.03.21 |
라이브러리 (0) | 2024.03.21 |
수와 숫자의 차이 (0) | 2024.03.20 |