preLoad Image preLoad Image
검색 바로가기
주메뉴 바로가기
주요 기사 바로가기
다른 기사, 광고영역 바로가기
중앙일보 사이트맵 바로가기

‘스위치 On·Off’ 2진수 덧셈으로 디지털 사칙연산 척척

알고보면 쉬운 과학 원리
인간은 일찍부터 계산에 어려움을 느꼈던 것 같다. 숫자 계산을 할 때 도구의 도움을 받으려는 노력은 기원전 2700년께 메소포타미아에서 시작됐다. 그 후 이집트와 페르시아를 거치면서 주판의 원리와 비슷하게 작동하는 도구가 사용됐다. 주판처럼 숫자를 나타내는 돌멩이들이 줄에 매달려서 있고, 줄의 위치가 숫자의 자릿수를 나타내는 원리다. 아바커스(Abacus)라 불리는 이러한 계산도구는 그리스와 로마를 거치면서 유럽에서 사용되게 된다. 중국에서 주판이 사용되기 시작한 것은 기원전 2세기께로 알려져 있다.  
 
동양이 오랫동안 주판에 의존했던 반면에 서양에서는 17세기 새로운 계산 도구들이 나오기 시작했다. 1620년께 영국의 수학자인 윌리엄 오트레드는 계산자라는 도구를 만들었다. 두 개의 자를 좌우로 밀어서 계산하려는 숫자에 맞추어 눈금을 읽어 답을 찾는 방식이었다. 그 후 계산자는 삼각함수 및 지수, 로그함수의 계산이 가능하여, 1970년대 휴대용 전자계산기가 나오기 전까지 공학 분야에서 매우 유용하게 이용됐다.
 
 
에이다, 세계 최초의 컴퓨터 프로그래머
 
1642년에는 프랑스의 수학자이자 철학자인 파스칼이 톱니바퀴 계산기를 개발했다. 이것은 기본적으로 0에서 9까지의 숫자가 적혀 있는 원통의 톱니바퀴로 계산하는 방식이었다. 첫 자리에 있는 바퀴의 숫자가 9를 넘으면, 자동으로 다음 자리의 바퀴가 한 칸 돌아가고, 처음 자리는 0으로 돌아가도록 고안되었다.  
 
영국의 찰스 배비지는 1822년 미분을 할 수 있는 계산기를 제작했다. 이것은 숫자의 차이를 계산하여 결과를 자동으로 만들었다. 미분이란 것이 원래 앞 숫자와 뒷 숫자 사이의 차이를 계산하는 것이기 때문에, 이러한 원리를 이용한 것으로 보인다. 배비지는 더 나아가 삼각함수표를 계산할 수 있는 기능도 갖추게 했다. 배비지는 1830년에 프랑스의 조셉 마리 자카르가 직조기에 사용했던 펀치카드를 접목했다. 펀치카드는 카드에 구멍을 뚫어서 기호를 표시하는 것인데, 2진수를 이용한 표기의 일종이다. 배비지의 계산 기계는 기존의 계산기와 달리 중간 결과를 자동으로 저장하고, 명령에 따라 계산 순서를 바꿀 수 있었다.
 
배비지의 친구 로벨라체 에이다는 이 기계가 자동으로 작동하도록 연속된 명령어를 주는 프로그램을 짰다. 이 때문에 에디다는 세계 최초의 컴퓨터 프로그래머로 기록되었다. 기계가 수행할 계산의 순서를 정해 주는 연속된 명령어들을 프로그램이라 부른다. 그리고 이를 작성하는 일을 코딩이라 부르기도 한다.
 
 
샤논은 2진수 표기 단위 ‘비트’로 명명
 
20세기 중반이 되면서, 디지털 컴퓨터가 나왔다. 디지털이란 기본적으로 사물을 불연속적인 숫자로 표현하는 것이다. 그런데 디지털 컴퓨터에는 2진수가 적합하다는 것을 알게 되었다. 디지털 컴퓨터는 모든 신호를 2진수(0,1)로 표현하고, 이것을 스위치(Off, On)로 구현하기 때문이다. 디지털 방식에서는 스위치가 꺼져 있는 것을 0, 스위치가 켜져 있는 것을 1이라 표현한다.
 
숫자를 2진수로 표시한다는 면에서 앞서 자카르와 배비지가 이용했던 펀치카드와 비슷한 개념이다. 1948년에 정보이론의 아버지라 불리는 클로드 샤논은 이러한 2진수로 표기하는 단위를 비트(bit)라고 이름 붙였다. 1비트는 스위치 한 개에 해당하고, 0과 1을 표현한다.  2비트라고 하면 스위치 두 개를 말한다.
 
앞서 소개됐던 모든 계산기는 수동식 또는 기계식이었다. 서양의 아바커스와 동양의 주판은 수동식으로 알을 올리고 내린다. 오트레드의 계산자도 눈금자를 손으로 이동하여 계산한다. 그리고 파스칼과 배비지의 계산기도 모두 손으로 톱니바퀴를 돌려서 구동시키는 방식이다. 이제 전기로 작동되는 컴퓨터가 나왔다. 과연 컴퓨터는 전기를 이용하여 어떻게 계산을 하는 것일까?
 
[그래픽=박춘환 기자 park.choonhwan@joongang.co.kr]

[그래픽=박춘환 기자 park.choonhwan@joongang.co.kr]

<그림 1>은 가장 기본적인 2진수 덧셈 계산표를 보여 주고 있다. 입력의 두 숫자를 a와 b로 표시하고, 출력을 s라 하자. 여기서 a=0, b=0이면 s=0 그리고 a=1, b=0이면 s=1을 나타낸다. 다음의 그림들에서는 실제로 이러한 계산이 전기 스위치 회로에서 어떻게 이루어지는지 보여주고 있다. 전기회로에는 두 개의 스위치(a, b)가 있다. 입력으로 0이 들어오면, 스위치가 끊어져 Off 상태가 되어, 전기가 흐르지 않게 된다. 입력에 1이 들어오면, 스위치가 연결되어 On 상태가 되어 전기가 흐른다.
 
결과 s에 전기가 들어오면 1이 된다.
 
<그림 2>는 입력이 a=0, b=0과 같이 주어질 때, 결과 s=0을 만들어 주는 스위치 회로를 보여 주고 있다. 두 개의 입력 스위치 모두가 오프(Off) 상태가 됐다. 결과 s에 전기가 흐르지 않아서 0이 된다. <그림 3>은 입력 a=1, b=0을 보여 준다. a 스위치는 온(On)이 되고, b 스위치는 Off가 된다. 둘 중에 하나만 전기가 흘러도 s에는 전기가 들어온다. s는 1이 된다. <그림 4>는 a=0, b=1의 상태를 보여 준다. 이때에도 둘 중에 하나의 스위치가 On이기 때문에, s에 전기가 들어온다. 한편, a=1, b=1인 경우에는 결과에 올림수가 생겨서 s=10이 된다. 자릿수가 늘어나서 조금 복잡해지기 때문에 여기서 설명을 생략하기로 한다.
 
모든 숫자는 2진수로 고칠 수 있다. 모든 숫자의 뺄셈이나 곱셈, 나눗셈은 결국 덧셈의 응용이다. 예를 들어서 곱셈은 덧셈을 반복하면 된다. 그렇게 되면 모든 숫자의, 모든 종류의 계산은 스위치를 On, Off 시킴으로써 가능해진다. 모든 컴퓨터 프로그램은 이러한 스위치의 계산 순서를 조정하는 명령어들의 집합체이다. 코딩 교육이라는 것도 결국 이런 계산 순서를 목적에 맞게 조정하는 방법을 배우는 것이다.
 
이광형 KAIST 바이오뇌공학과 겸 문술미래전략대학원 교수
인공지능과 퍼지이론, 바이오정보, 미래예측 전문가다. 사단법인미래학회장과 국회미래연구원이사를 맡고 있다. 

구독신청

AD
온라인 구독신청 지면 구독신청

중앙일보 핫 클릭

PHOTO & VIDEO

shpping&life

뉴스레터 보기

김민석의 Mr. 밀리터리 군사안보연구소

군사안보연구소는 중앙일보의 군사안보분야 전문 연구기관입니다.
군사안보연구소는 2016년 10월 1일 중앙일보 홈페이지 조인스(https://news.joins.com)에 문을 연 ‘김민석의 Mr. 밀리터리’(https://news.joins.com/mm)를 운영하며 디지털 환경에 특화된 군사ㆍ안보ㆍ무기에 관한 콘텐트를 만들고 있습니다.

연구소 사람들
김민석 소장 : kimseok@joongang.co.kr (02-751-5511)
국방연구원 전력발전연구부ㆍ군비통제센터를 거쳐 1994년 중앙일보에 입사한 국내 첫 군사전문기자다. 국방부를 출입한 뒤 최장수 국방부 대변인(2010~2016년)으로 활동했다. 현재는 군사안보전문기자 겸 논설위원으로 한반도 군사와 안보문제를 깊게 파헤치는 글을 쓰고 있다.

박용한 연구위원 : park.yonghan@joongang.co.kr (02-751-5516)
‘북한의 급변사태와 안정화 전략’을 주제로 북한학 박사를 받았다. 국방연구원 안보전략연구센터ㆍ군사기획연구센터와 고려대학교 아세아문제연구소 북한연구센터에서 군사ㆍ안보ㆍ북한을 연구했다. 2016년부터는 중앙일보에서 군사ㆍ안보 분야 취재를 한다.