전체 글
-
문자와 문자열Computer Science 2021. 3. 3. 16:20
아스키코드 문자 인코딩(character encoding)은 문자 집합을 메모리에 저장하거나 통신하는 데 사용하기 위해 부호화하는 방식을 말한다. 대표적인 예로 모스 부호를 들 수 있다. 문자 집합(character set)은 문자를 모아 둔 것이다. 예를 들면 라틴문자가 있다. 주목할 점은 다양한 언어(영어, 프랑스어, 독일어)가 라틴문자를 사용한다는 점이다. 0과 1밖에 모르는 컴퓨터에 문자를 인식시키려면 문자를 0과 1로 이루어진 2진수로 나타내야 한다. 문자 하나에 정수 하나를 매핑해 두면 이 정수는 특정 문자를 표현하게 된다. 이렇게 매핑된 정수를 코드 포인트라고 하고, 문자와 문자에 매핑된 코드 포인트를 모아 놓은 집합을 문자 집합(Coded Character Set, CCS)이라고 한다. 아..
-
실수Computer Science 2021. 3. 3. 15:40
간단한 실수 연산 예제를 만들어보자. >>> a = 0.1 >>> result = 0.0 >>> for i in range(100): >>> result += a 이 코드를 보면 a가 0.01이고 이를 100번 더했으니 1이 나오기를 예측할 수 있다. 하지만 결과는 예상과 다르다. >>> result 1.0000000000000007 앞의 방식과 계산 방식이 같은 예제를 하나 더 만들어 보자. 대신 이번에는 0.072443을 100번 더할 계획이다. >>> a = 0.072443 >>> a 0.072443 >>> for i in range(100): >>> result += a >>> result 7.2443 그런데, 이번에는 정확한 결과값이 나왔다. 이 결과를 이해하려면 컴퓨터가 실수를 표현하는 방법인..
-
양의 정수와 음의 정수Computer Science 2021. 3. 3. 11:56
(컴퓨터는 정수(integer)를 1, 2, 4, 8, 바이트 등 다양한 크기로 저장한다. 이 글에서는 1바이트를 기준으로 설명한다.) 양의 정수 정수에는 양수와 음수가 있으므로 부호를 나타내는 데 1비트를 사용한다. 맨 앞의 비트가 0이면 양수, 1이면 음수다. 예를 들어 25를 메모리에 저장할 때 맨 앞의 비트는 양수이므로 0이 된다. 10진수 25를 2진수로 변환하면 11001이므로 나머지 비트를 0으로 채우면 0001 1001로 메모리에 저장된다. 맨 앞의 비트가 부호를 나타낸다는 사실만 알고 있다면 10진수를 2진수로 변환한 것과 같다. (1바이트로 나타낼 수 있는 수의 크기는 2의 8제곱(0~255)이 아니라, 맨 앞의 비트를 부호로 사용하므로 표현할 수 있는 양수의 범위는 절반으로 줄어든다...