2진수 10진수 변환 계산 방법



안녕하세요? 오늘은 2진수를 10진수로 변환하는 방법을 알아보겠습니다. 우리가 현재 사용하는 컴퓨터는 0과 1을 사용하는 2진수로 되어 있습니다.


컴퓨터의 모든 전기적인 기능을 실행하고 종료하는 ON/OFF를 2진수로 표현한다고 이해하시면 됩니다. 좀 더 궁금하시면 왜 2진수를 사용하는지 검색을 해보시기 바랍니다. 개인적으로 저는 머리가 나빠서 읽을 때만 이해되지 돌아서면 다시 멍해져서 그냥 이해고 뭐고 받아들이기로 했습니다.



2진수와 10진수의 개념

먼저 2진수와 10진수의 개념부터 살짝 알아보겠습니다.




2진수(binary number)


2진수는 2를 기수로 하여 [0, 1]의 2종류 숫자로 나타내는 수를 말합니다.  우리가 사용하는 컴퓨터는 회로에 전기가 통할 때 [1], 통하지 않을 때 [0] 두 가지 상태만 존재한다고 이해하시면 됩니다.


1948년 미국의 수학자 '존 와이더 터키'가 이를 비트(bit)라고 이름 붙였고, 비트는 현재 컴퓨터 데이터의 기본 단위로 사용되고 있습니다.




10진수(decimal number)


10진수는 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]까지의 10개의 숫자를 사용하고 [9] 다음의 수로 자리 올림이 발생되도록 하여 수를 표시하는 방법을 말합니다.


사실 진수는 중학교 수학 시간에 배우는 개념이라 수학에 관심이 없거나, 시간이 한참 흘렀거나, 수학을 일찌감치 포기하신 분들에게는 기억이 가물가물하거나 머리털 나고 처음 듣는 개념이 될 듯합니다.


진수의 개념을 모르고 계산하지 못한다고 해서 사는데 먼지만큼도 지장 없고, 직장 생활도 문제 되지 않습니다. 그럼에도 이 글을 보고 있는 분들은 정보처리 자격증을 공부하고 있거나, 저처럼 지식을 알고 싶은 욕망을 가지신 분들이라고 생각합니다.


2진수와 10진수 개념을 왜 궁금했을까?


이유는 저마다 다르겠지만 제 기준에서는 컴퓨터에서 사용하는 IP 주소 때문입니다. 알고 있을지 모르겠지만 우리가 사용하는 IPv4 주소 체계는 [123.123.123.123]이라는 32비트의 12자리 숫자로 표현되는 이 숫자가 바로 '2진수가 10진수로 변환'된 숫자 값입니다. 제 궁금증은 바로 여기서부터 출발했습니다.


2진수 10진수 변환 방법


IP 주소 [172.16.254.1]을 2진수로 표현하면  [10101100.00010000.11111110.00000001] 값이 됩니다. 여기서 2진수를 10진수로 변환하는 건 사칙연산과 제곱 근을 계산할 줄 알면 누구나 쉽게 변환 가능합니다.





오른쪽 가장 끝자리인 1의 자리는 [2^0승]이고 그다음부터 순서대로 입력하면 [2^7]이 됩니다. 이제 각 자릿수마다 제곱근 값 [B]에 2진수 값 [A]를 곱해서 더해주시면 10진수 값 [172]가 나오게 됩니다.




역시나 같은 방법으로 계산하면 10진수 [16]으로 변환할 수 있습니다. 사실 진수를 몰라도 기본적인 산술만 가능하시면 규칙성을 보고 계산할 수 있는 수준이지만 그럼에도 불구하고 아직도 이해되지 않으면 조금 더 학습해보시던가 어차피 몰라도 지장 없으니 그러려니 하고 넘기시기 바랍니다.


최대한 쉽게 작성하려고 노력했지만 글로 설명하는 건 여기까지가 한계인 거 같습니다.


+ Recent posts