CS

2. 컴퓨터 데이터 표현 방법

SS_G 2023. 6. 18. 20:43
반응형

컴퓨터는 우리의 언어를 이해하지 못합니다. 대신 그들은 1과 0, 이른바 이진 숫자로 이루어진 언어를 사용합니다. 이런 이진 정보를 표현하고 변환하는 방법에 대해 알아보겠습니다. 여기서는 컴퓨터 정보 표현의 기본 단위와 진법 변환, 그리고 코드 시스템에 대해 다룰 것입니다.

 

1. 컴퓨터 정보 표현 단위

1.1. 비트(bit)

 이는 정보의 최소 단위로, 2진수의 한 자리를 의미합니다. 0 또는 1을 저장할 수 있으며, n개의 비트로는 2^n개의 데이터를 표현할 수 있습니다.

1.2. 니블(Nibble)

이는 4개의 비트, 즉 2진수 4자리를 말합니다. 이는 16진수 1자리에 해당하지만, 보통 단독으로 처리되지 않습니다.

1.3. 바이트(Byte)

 바이트는 8비트를 포함합니다. 이는 문자 표현의 최소 단위로, 컴퓨터에서 가장 일반적으로 사용하는 정보의 단위입니다.

1.4. 워드(Word)

 워드는 바이트의 집합으로, 컴퓨터 종류에 따라 크기가 다릅니다. 워드는 CPU가 메모리에 접근할 때 한 번에 읽을 수 있는 단위로 사용되며, 이는 메모리 한 번지의 크기를 의미합니다. 일반적으로 Half Word는 2바이트, Full Word는 4바이트, Double Word는 8바이트를 말합니다.

 

 

2. 진법 변환

데이터를 표현하는 데에는 다양한 진법이 사용됩니다. 가장 일반적인 진법은 10진법이지만, 컴퓨터는 이진법을 사용합니다. 그래서 10진법에서 이진법으로의 변환이 자주 일어납니다.

 

1) 10진수 -> x진수 변환

3. 보수

컴퓨터는 수를 저장하고 연산을 수행하는 방법으로 보수 개념을 사용합니다. 보수는 주로 뺄셈 연산과 음수 표현에 사용되며, 1의 보수와 2의 보수 두 가지 방법이 일반적입니다.

3.1. 1의 보수

이진수의 1의 보수는 해당 이진수의 모든 자리수를 반대로 바꾼 것입니다. 즉, 0은 1로, 1은 0으로 변환합니다. 이 방법은 컴퓨터에서 뺄셈을 수행할 때 유용하게 사용됩니다.

3.2. 2의 보수

이진수의 2의 보수는 1의 보수에 1을 더한 것입니다. 즉, 가장 오른쪽의 1을 찾은 후, 그 1의 오른쪽에 있는 모든 비트를 반전하고 그 1을 유지하는 방법으로 계산할 수 있습니다. 이 방법은 1의 보수 방식의 단점을 보완하며, 컴퓨터에서 음수를 표현하고 뺄셈을 수행하는 데에 주로 사용됩니다.

 

1의 보수 예시:
예를 들어, 8비트 이진수 1010 1010을 생각해 보겠습니다. 이 이진수의 1의 보수는 각 비트를 반전시킵니다.

1010 1010 (원래 수)
0101 0101 (1의 보수)

 

2의 보수 예시:
2의 보수는 1의 보수에 1을 더하는 방법으로 구합니다. 동일한 8비트 이진수 1010 1010의 2의 보수를 구해 보겠습니다.

1010 1010 (원래 수)
0101 0101 (1의 보수)
0101 0110 (2의 보수)

 

1의 보수에 가장 오른쪽에 있는 1에서 오른쪽으로 가장 가까운 0을 1로 바꾸고, 그 이후의 모든 1을 0으로 바꾸어 2의 보수를 구했습니다.

 

4. 코드

컴퓨터에서 문자를 표현하는 데에는 다양한 코드가 사용됩니다. 여기서는 그 중 일부를 살펴보겠습니다.

4.1. 표준 BCD 코드

이는 초기 컴퓨터에서 사용되었던 코드로, 6비트 (zone : 2bit, digit : 4bit)로 구성되어 있어 64개의 문자를 표현할 수 있습니다. 이 코드는 대소문자를 구분하지 못하는 단점이 있습니다.

4.2. ASCII 코드

 ASCII 코드는 7비트 (zone : 3bit, digit : 4bit)로 구성되어 있어 128개의 문자를 표현할 수 있습니다. 이를 통해 기본적인 영어 알파벳, 숫자, 특수문자 등을 표현할 수 있습니다. 그러나 다른 언어를 표현하는 데에는 한계가 있습니다.

4.3. EBCDIC 코드

이는 확장 BCD 코드로, 8비트 (zone : 4bit, digit : 4bit)로 구성되어 있어 256개의 문자를 표현할 수 있습니다.

4.4. 유니코드

유니코드는 언어에 상관 없이 모든 문자를 표현할 수 있는 코드입니다. 이는 16비트로 구성되어 최대 65,536자를 표현할 수 있습니다. 유니코드 표준에는 UTF-8, UTF-16, UTF-32 등 여러 가지 인코딩 방식이 포함되어 있습니다.

 

5. 논리 연산

논리연산은 참(True) 또는 거짓(False)의 두 가지 값만을 가지는 논리값들에 대해 수행되는 연산입니다. 

 

5.1. AND 연산

AND 연산은 모든 입력이 참일 때만 결과가 참이 됩니다. 다음은 AND 연산의 진리표입니다

A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1

5.1.2 . OR 연산

OR 연산은 적어도 하나의 입력이 참일 때 결과가 참이 됩니다. 다음은 OR 연산의 진리표입니다
A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1
 

5.1.3 . NOT 연산

NOT 연산은 입력을 반전시킵니다. 즉, 참을 거짓으로, 거짓을 참으로 바꿉니다. 다음은 NOT 연산의 진리표입니다

A NOT A
0 1
1 0

5.1.4 . XOR 연산

XOR 연산은 배타적 OR 연산으로, 입력값들이 서로 다를 때만 결과가 참이 됩니다. 이것이 '배타적'이라고 불리는 이유입니다. XOR의 진리표는 다음과 같습니다
A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0
 

5.1.5 . 시프트 연산

시프트 연산은 비트를 왼쪽 또는 오른쪽으로 이동시키는 연산입니다. 이 연산을 통해 데이터를 빠르게 곱하거나 나눌 수 있습니다.
 
왼쪽 시프트(<<)
비트를 왼쪽으로 n 비트 이동시킵니다. 왼쪽으로 비트를 밀면 2의 n 승을 곱하는 것과 같은 효과가 있습니다. 예를 들어, 2 (이진수 0010)를 왼쪽으로 1비트 시프트하면 4 (이진수 0100)가 됩니다.

오른쪽 시프트(>>)
비트를 오른쪽으로 n 비트 이동시킵니다. 오른쪽으로 비트를 밀면 2의 n 승으로 나누는 것과 같은 효과가 있습니다. 예를 들어, 4 (이진수 0100)를 오른쪽으로 1비트 시프트하면 2 (이진수 0010)가 됩니다.
 

컴퓨터는 간단한 비트에서 복잡한 유니코드에 이르기까지 정보를 표현하는 데에 놀라운 방법을 사용합니다. 이러한 이해는 컴퓨터와 더 깊게 소통하고 이해하는 데에 필수적인 기본이 됩니다. 다음에는 더 깊이 있는 주제로 돌아오겠습니다. 그럼,감사합니다!

반응형

'CS' 카테고리의 다른 글

1. 컴퓨터 시스템의 구성요소  (0) 2023.06.17