진수란 한자로 나아갈 진(進) + 셀 수(數)가 합쳐진 단어로 '특정'조건에 맞추어 앞으로 나아가는 수라는 의미를 가지고 있다.
앞으로 나아가는(진, 進)수(수, 數)
진수(進數)
진수의 특정 조건은 다음과 같다.
n 진수 = n 수가 되었을 경우, 현재 자리를 0으로 비우고 앞으로 나감
예를 들어 2진수란 숫자가 더해져 2가 되면 다음 자리의 수로 나아간다는 의미이다.
일상생활에서 가장 많이 사용하는 수는 10진수로 이루어진 숫자로 이 또한 10이 되면 앞으로 한자리 나아가는 수라는 의미를 가진 것이다.
(실제 현실에서 10진수를 사용하기 때문에 10진수로 숫자 10을 한자리로 표현하는 방법은 없으니 문장이 이상하게 보여도 이해하도록 하자.)
해당 진수에 적용되는 진수의 법칙을 '진법'이라 한다.
다음은 여러 진법들의 예시이다.
10진수 이상의 수에서는 9보다 큰 수를 한 자릿수로 표기하는 방법이 없기 때문에 영문자를 10 이상의 수부터 표기한다.
일반적으로 10진수의 수를 다른 진수로 변환하고자 할 때, 나눗셈을 통하여 다음과 같은 방식으로 표기한다.
위의 예시는 10진수를 2진수로 변환하여 다시 10진수로 나타내는 과정이다. 다른 진수 또한 위와 같은 방식으로 변환을 거치면 된다.
컴퓨터에서 받아들이는 모든 신호는 1과 0으로 이루어져 있으며 이를 사용하여 연산한다. 이는 컴퓨터는 전기를 이용한 장치로 전기가 들어왔다는 신호(1)과 들어오지 않았다는 신호(0)으로만 신호를 받을 수밖에 없기 때문이다. 따라서 컴퓨터는 2진수로 신호를 받은 뒤에 다른 수로 변환하여 사용하는 것이다.
모든 전자기기의 전원만 보아도 대부분 형태가 비슷하다. 이 전원 모양은 전기적 신호인 1과 0을 의미하고 있는 것이다.
이러한 이유로 컴퓨터에서는 10진수보다 2진수와 2의 거듭제곱 형태인 8진수와 16진수를 많이 사용한다. 특히 16진수는 큰 수를 효율적으로 표현할 수 있기 때문에 대부분의 컴퓨터 내의 표기나 저장 형태는 16진수를 많이 사용한다. 지금 당장 컴퓨터에서 레지스트리 편집기를 열어 데이터의 형태를 살펴보면 대부분이 16진수로 표기되어 있는 것을 알 수 있을 것이다.
컴퓨터에서 단순한 수를 표현할 때, 숫자만 봐서는 해당하는 수가 2진수인지 8진수인지 10진수인지 16진수인지 알 수 있는 방법이 없다. 2진수는 1과 0으로만 이루어져 있기 때문에 (그나마)쉽게 알아볼 수 있지만, 8진수나 10진수는 서로 구분하기가 힘들고, 16진수는 알파벳이 숫자 안에 표기되어 있지 않으면 알아보기가 매우 힘들다. 따라서 컴퓨터에서는 이를 구분할 수 있도록 숫자 앞에 특별한 표시를 하여 나타내어 준다.
진수 | 표시(Prefix) | 예시 | |
2진수 (Binary) |
숫자 앞 '0b'을 표시 | 0b110 (앞에 0b가 붙었으므로 2진수) |
→ 6(10진수로 변환한 값) |
8진수 (Octal) |
숫자 앞 '0'을 표시 | 0137 (앞에 0이 붙었으므로 8진수) |
→ 95(10진수로 변환한 값) |
10진수 (Decimal) |
그냥 '숫자' 표시 | 137 |
→ 137(동일한 값) |
16진수 (Hexadecimal) |
숫자 앞 '0x' 표시 | 0x137 (앞에 0x가 붙었으므로 16진수) |
→ 311(10진수로 변환한 값) |
진수는 일반적으로 사용하지 않는 숫자이기 때문에 처음에는 숫자가 눈에 잘 들어오지 않는다. 그러나 컴퓨터를 공부하는데 진법은 기본이 되는 것이기 때문에 잘 숙지하여 익숙하게 만들어야 한다.
Scope (대역대) (0) | 2020.10.26 |
---|---|
Subnet mask (서브넷 마스크) (0) | 2020.10.26 |
Classful Network (클래스) (0) | 2020.10.26 |
IP Address (아이피 주소) (0) | 2020.10.26 |
Network 기초 (0) | 2020.10.26 |
댓글 영역