진수법

Kyung yup Lee·2021년 2월 15일
0

컴퓨터공학

목록 보기
1/1

진수법이란 수를 표기하는 방법을 뜻한다.

일반적으로는 10진법을 기본으로 하여, 숫자가 9에서 1이 더해졌을 때, 자리수가 추가되어 다음 자리수가 0에서 1로 갱신되고, 1의 자리수는 다시 0으로 바뀌는 진수법을 사용한다.

즉 0~9 총 10개의 수를 이용하는 진법이다.

컴퓨터는 왜 2진수를 사용하는가?

인간의 뇌는 10진법을 이해하는 데 큰 문제가 없다. 하지만 기계는 10진법을 이해할 수 없다. 기계가 수를 이해하는 방법은 ON/OFF 두 가지를 구분하는 것이다.

ON 은 1이고 OFF 는 0이다.

즉 전기신호를 주는데, 전기신호에는 켜지거나 꺼지거나 두 개의 방법밖에 없기 때문에 그 이상의 수를 상태표현할 방법이 없는것이다.

최근에 3진법 반도체가 나왔다는 기사를 몇 번 봤었는데, 이는 누설전류를 이용하여 제 3의 상태를 만들어 3진법을 구현하는 방식이다.

구체적인건 여기에서 참고했다.
https://m.blog.naver.com/hi5fantasium/221595794281

때문에 컴퓨터는 2진법만을 사용해서 기계어를 작성하고, 이를 해독하여 전기신호를 만들어낸다.

8진법, 16진법

인간이 사용하는 수 체계에는 총 10개의 수가 있다. 때문에 기본적으로 모든 진수법은 변환을 위해서 10진법을 거쳐서 변환된다. 예를 들어 5진수를 16진수로 변환하려면 10진수로 변환한 뒤 16진수로 바꾸어야 하는 것이다.

하지만 8진법과 16진법은 따로 10진법 변환없이 즉시 2진법으로 변환이 가능하다.

이것은 8과 16이 2의 거듭제곱형이기 때문이다. 그래서 컴퓨터의 메모리 주소나, ip 주소 등 많은 숫자가 16진법으로 사용된다.

예를 들어 1010 1010 1010 1010 이라는 이진수가 있다고 해보자.

이를 십진수로 변환하면 43,690 이 되고, 16진수로 변환하면 AAAA 가 된다.

그렇다면 1010만 16진수로 변환하면? A이다.

즉 이진수를 뒤에서부터 4개씩 끊어서 바로 16진수의 한 자리수로 사용할 수가 있다는 뜻이다.

이런 방법을 통해 8진수와 16진수는 10진법 변환 없이 즉시 이진법으로 변환이 가능하다.

당연히 한번의 연산과정을 거쳐 10진법을 거쳐 가는 방법보다 훨씬 빠를것이다.

진수변환

변환방법은 중학교 때 배우는 것이니, 굳이 자세하게 적지는 않는다. 다만 정리하자면

10진법 -> 기타 진법
10진법 수를 만들려는 진법수로 나누어 나머지를 이어붙인다.

기타 진법 -> 10진법
기타 진법의 자리수에 해당 진법수를 곱하여 더한다.

profile
성장하는 개발자

0개의 댓글