원래 알고 있던 내용이긴 하지만,
오늘 강의를 들어서 오랜만에 상기시킨 만큼
글로 짧게 적어보려고 합니다.
일반적으로 수 체계에서 쓰는 진법은 10진법입니다.
얼핏 알기로 손가락이 10개인 것에서
시작됐다고 본 것 같습니다.
아무튼, 유래는 알면 재밌지만
몰라도 아무 상관 없으니 바로 설명 시작하겠습니다.
진법 설명 및 표기법.
각 진법들은 표기된 숫자가 되면
자릿수가 올라갑니다.
왼쪽이 10진법,
오른쪽이 다른 진법으로 예를 들면,
2진법은 2가 되면 자릿수가 올라갑니다.
1 = 1
2 = 10
3 = 11
4 = 100
8진법은 8이 되면 올라갑니다.
7 = 7
8 = 10
9 = 11
10 = 12
16 = 20
16진법은 16이 되면 자릿수가 올라가는데,
10진법 보다 한 자리에
표기되는 숫자가 크기 때문에,
A~F 알파벳을 이용해서 표기합니다.
9 = 9
10 = A
11 = B
15 = F
16 = 10
31 = 1F
2진법을 쓰는 이유.
2진법은 컴퓨터가 사용하는 수 체계입니다.
0 과 1로만 이루어져 있는데,
이는 전기 신호는 입력 되거나,
입력되지 않거나 둘 중 하나이기 때문에
전기신호를 입력받아 움직이는
컴퓨터로썬 0 과 1
두가지만 알아들을 수 있게됩니다.
각 진법 간의 변환법.
먼저,
2진법은 각 자릿수가
2의 0제곱부터 시작해서
자릿수가 올라갈수록
2의 1제곱,
2의 2제곱 이런식으로 올라갑니다.
(참고로 다른 진법도 똑같음.
8진법은 각 자릿수가 8의 n제곱,
16진법은 각 자릿수가 16의 n제곱)
예를 들어 2진법으로 1101 이면,
8421 = 각 자릿수에 해당하는 값
1101 = 1이 담긴 자릿수만 값을 가짐.
ㄴ1끼리만 더하면 10진법이 되고,
그 값은 13입니다.
다음,
2진법을 8진법과 16진법으로
변환하는 방법은 간단합니다.
2진법으로 111이 7이기 때문에,
1000은 8이고, 8진법으론 10입니다.
따라서,
2진법의 3자리가 8진법의 1자리와 같습니다.
2진법 , 8진법
.111, 7
1.000, 10
1.010, 12
11.010, 32
(빨간점은 계산하기 편하시라고 찍은 겁니다.)
다음,
2진법을 16진법으로 바꾸는 것도 마찬가지입니다.
2진법으로 1111은 15이기 때문에,
10000은 16이고, 16진법으론 10 입니다.
따라서,
2진법의 4자리가 16진법의 1자리와 같습니다.
2진법, 16진법
111, 7
.1111, F
11.1010, 3A
1011.1100, BC
다음,
8진법과 16진법간의 변환은,
각 진법을 2진법으로 바꾼 후에
원하는 진법으로 바꾸는 방법을 쓰면 됩니다.
마지막으로,
10진법에서 각 진법으로 변환하는 방법입니다.
2진법으로 변환은 위에 설명한 방법도 있고,
(각 자릿수를 2의 n제곱으로 써서
10진법인 수랑 같아지게
2진법의 자리마다 1과 0을 채우는 것)
10진법의 수를 2로 나눠서
나머지가 0이면 0, 1이면 1 이런식으로
각 자릿수를 채워가는 방법도 있습니다.
예)
10%2 = 0
5%2 = 1
2%2 = 0
1
마지막 남은 1은
2로 나눠지지 않기 때문에,
구해진 값을 역순으로 써서
10의 2진법 값은 1010이 됩니다.
10진법을 8진법과
16진법으로 바꾸는 것도 비슷합니다.
몫과 나머지를 구하는 원리입니다.
예)
20/8 = 몫 2, 나머지 4
20의 8진법 표기 = 24
55/8 = 몫 6, 나머지 7
55의 8진법 표기 = 67
40/16 = 몫 2, 나머지 8
40의 16진법 표기 = 28
'알고리즘 및 개념 정리' 카테고리의 다른 글
등차수열, 등차수열의 일반항, 등차수열의 합. (feat. 피보나치 수열) (0) | 2024.03.30 |
---|---|
향상된 for문, for-each 문에서 주의할 점. (0) | 2024.03.09 |
imos 법 (いもす 法, imos 法) 에 대한 간략한 소개 및 설명. (0) | 2024.03.09 |
"경우의 수" , "팩토리얼" , "순열" , "조합" (1) | 2024.03.01 |
'최소 공배수' 와 '최대 공약수', '유클리드 호제법' 과 '서로소'. (1) | 2024.02.28 |