본문 바로가기

프로그래밍, 쉽게 배워보자

컴퓨터는 어떻게 숫자를 세고, 문자를 표현할까?

컴퓨터는 어떻게 숫자를 셀까?

1. 우리는 10단위로 숫자를 셉니다. 이것을 십진법이라고 합니다. 하지만 엿날옛적, 일부 고대 문화권에서는 2개 단위로 숫자를 묶어 센 적이 있습니다. 이것을 이진법이라 하는데요, 컴퓨터는 이 2진법 즉 2진수를 사용합니다.

2. 2진수란: 01, 단 두개의 숫자만을 사용하는 수입니다. 그래서 2진수라고 부릅니다. 아래는 2진수를 0부틔 15까지 나열해봅니다. 여러분이 보기 편하시도록, 가로안에 십진수를 써보겠습니다.

                                                          0, 1, 

                                                          10(십진수의 10이 아닙니다. 이진수에서는 2입니다), 11(십진수의 3),

                                                          100(4), 101(5), 110(6), 111(7)

                                                          1000(8), 1001(9), 1010(10), 1011(11), 1100(12), 1101(13), 1110(14), 1111(15) 이렇게 말립니다. 순서대로 0부터 15까지의 숫자를 표현해 본 것입니다.

3. 그렇담 왜 컴퓨터는 2진수를 사용하는 것일까요? 그것은 컴퓨터가 전기 신호로 모든 데이터를 처리하기 때문입니다. 전기가 흐르는 상태가 ON이고 전기가 흐르지 않는 상태가 OFF입니다. 전기가 ON일때는 1, 전기가 OFF일때는 0을 나타냅니다.

4. 컴퓨터의 크기를 나타내는 단위: 비트(Bit). 1비트는 한 행을 나타내는 단위로, 0이나 1의 값만 표현할 수 있습니다. 2비트는 아래 그림처럼 2행을 나타내며 0부터 3까지 4개의 값을 나타낼 수 있습니다.

비트 바이트비트(Bit)란?

바이트(Byte): 8. 8비트를 1바이트라고 합니다. 2=256개의 값, 0~255까지의 수를 표현할 수 있습니다.

킬로바이트(KB): 10. 10비트를 1KB라고 합니다. 2ⁱ⁰=1024개의 값, 0~1023까지의 수를 표현할 수 있습니다.

그리고 MB(메가바이트), GB(기가바이트), TB(테라바이트)가 있습니다. 1MB1024KB, 1GB1024MB, 1TB1024GB와 같은 값입니다.

 

이진수 십진수이진수와 십진수

 

컴퓨터도 계산을 틀린다.

앞서 말씀드린 것처럼, 우리가 어떤 데이터를 컴퓨터에 입력하던 컴퓨터는 2진수로 모든 것을 치환해 계산합니다.  그런데 2진수로 바꿀 수 없는 값이 존재합니다. 이 때문에 컴퓨터도 계산을 틀리게 되는 것입니다.

컴퓨터는 전기 신호를 받는 기계입니다. 그래서 모든 정보를 01 로 치환해서 처리합니다. 하지만 소수점을 포함한 값 중에는 2진수로 치환할 수 없는 값이 있습니다. 예를 들어 10진수 0.12진수로 치환하면 0.0001100110011.......과 같이 무한대의 값이 됩니다.

따라서 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1=1 이지만, 컴퓨터가 계산해낸 답은 10에 가까운 끝이 없는 무한소수의 값이 나올 것입니다.

오차를 줄이는 방법은?

가장 쉬운 방법은 소수를 정수로 변환해 계산한 후 다시 소수로 치환하는 방법이 있습니다. 예를 들어 ‘0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1=?’을 계산하고자 한다면,

0.1의 소수점 위치를 오른쪽으로 한 칸 옮긴다. :1

1을 열 번 더한다. : 10

10의 오른쪽에서 첫 번째 행의 위치에 소수점을 삽입한다.

다시말해 소수를 계산할 때는, 정수로 변환해 계산한 후, 다시 소수로 변환시켜, 오류를 줄입니다!

 

컴퓨터는 문자를 어떻게 표현할까?

컴퓨터는 문자 또한 전기가 들어옴(ON)’전기가 나감(OFF)으로 표현합니다. 전기가 들어올 때는 1, 전기가 나갈 때는 0, 이 두 가지로 숫자, 문자, 논리를 처리한다고 앞서 말씀드렸는데요, 이것을 2진수라고 합니다.

문자를 표현할 땐 어떻게 할까? 각각의 알파벳에 번호를 부여합니다. A65, B66, C67.... 만약 우리가 자판에 'A'를 입력한다면 컴퓨터는 652진수인 1000001로 인식합니다.

이렇게 알파벳에 번호를 부여하는 것을 문자표하고 하는데요, 일종의 약속입니다. 문자표에는, ‘아스키(ASCII)코드’, ‘KS X 1001 코드‘EUC코드’, ‘유니코드(Unicode)’ 등이 있습니다