2 분 소요

컴퓨터 내부의 언어 체계

1. 비트

  • 비트는 컴퓨터에서 사용하는 가장 기본적인 단위로, 0과 1 두 가지 값만 가질 수 있습니다.
  • 비트는 2진법을 사용한다는 뜻의 binary와 숫자를 뜻하는 digit가 합쳐진 말입니다¹.
  • 비트는 정보를 표현하고 전달하는 데 사용되며, 여러 개의 비트를 조합하면 더 복잡한 정보를 표현할 수 있습니다.

2. 논리 연산

  • 논리 연산은 비트에 적용되는 연산으로, AND, OR, NOT, XOR 등이 있습니다.
  • 논리 연산은 비트의 값에 따라 결과가 달라지며, 진리표를 통해 확인할 수 있습니다.
  • 논리 연산은 컴퓨터에서 조건문, 반복문, 비교문 등을 수행하는 데 필요합니다.

3. 정수를 비트로 표현하는 방법

  • 정수를 비트로 표현하는 방법에는 부호와 절댓값 방식, 1의 보수 방식, 2의 보수 방식 등이 있습니다.
  • 부호와 절댓값 방식은 가장 왼쪽 비트를 부호 비트로 사용하고, 나머지 비트를 절댓값으로 사용하는 방식입니다. 예를 들어, 8비트로 +5와 -5를 표현하면 다음과 같습니다.

    +5 = 00000101

    -5 = 10000101

  • 1의 보수 방식은 부호와 절댓값 방식에서 부호 비트를 제외하고 모든 비트를 반전시킨 방식입니다. 예를 들어, 8비트로 +5와 -5를 표현하면 다음과 같습니다.

    +5 = 00000101

    -5 = 11111010

  • 2의 보수 방식은 1의 보수 방식에서 1을 더한 방식입니다. 예를 들어, 8비트로 +5와 -5를 표현하면 다음과 같습니다.

    +5 = 00000101

    -5 = 11111011

  • 2의 보수 방식은 덧셈과 뺄셈을 쉽게 수행할 수 있으며, 오버플로우를 방지할 수 있습니다. 따라서 컴퓨터에서 가장 많이 사용되는 방식입니다.

4. 실수를 표현하는 방법

  • 실수를 비트로 표현하는 방법에는 고정 소수점 방식과 부동 소수점 방식이 있습니다.
  • 고정 소수점 방식은 소수점의 위치를 미리 정해두고, 그에 맞게 비트를 할당하는 방식입니다. 예를 들어, 8비트로 소수점 앞에 4비트, 뒤에 4비트를 사용하면 다음과 같습니다.

    +5.25 = 001010100

    -5.25 = 101010100

  • 고정 소수점 방식은 표현 범위가 제한되고, 정밀도가 낮습니다.
  • 부동 소수점 방식은 실수를 지수와 가수로 나누어 표현하는 방식입니다. 예를 들어, 8비트로 부호 1비트, 지수 3비트, 가수 4비트를 사용하면 다음과 같습니다.

    +5.25 = 01010101

    -5.25 = 11010101

  • 부동 소수점 방식은 표현 범위가 넓고, 정밀도가 높습니다. 하지만 연산이 복잡하고, 오차가 발생할 수 있습니다.
  • 컴퓨터에서는 IEEE 754 표준을 따라서 부동 소수점을 표현합니다. 이 표준은 단정밀도와 배정밀도로 나뉘며, 각각 32비트와 64비트를 사용합니다.

5. 텍스트 표현

  • 텍스트를 비트로 표현하는 방법에는 ASCII, Unicode, UTF-8 등이 있습니다.
  • ASCII는 7비트로 영문자, 숫자, 특수문자 등을 표현하는 방식입니다. 예를 들어, A와 a를 표현하면 다음과 같습니다.

    A = 01000001

    a = 01100001

  • ASCII는 128개의 문자만 표현할 수 있으므로, 다른 언어나 특수문자를 표현하기에 부족합니다.
  • Unicode는 16비트나 32비트로 다양한 언어와 특수문자를 표현하는 방식입니다. 예를 들어, 한글 ‘가’와 ‘나’를 표현하면 다음과 같습니다.

    가 = 11000001 10100000

    나 = 11000001 10100110

  • Unicode는 문자의 종류에 따라 다른 비트 수를 사용하므로, 메모리 낭비와 호환성 문제가 발생할 수 있습니다.
  • UTF-8은 가변 길이의 비트로 Unicode를 표현하는 방식입니다. 예를 들어, 한글 ‘가’와 ‘나’를 표현하면 다음과 같습니다.

    가 = 11100010 10000000 10100000

    나 = 11100010 10000000 10100110

  • UTF-8은 문자의 종류에 따라 필요한 만큼의 비트를 사용하므로, 메모리 효율과 호환성이 좋습니다.

6. 문자를 사용한 수 표현

  • 문자를 사용한 수 표현은 10진수, 2진수, 8진수, 16진수 등이 있습니다.
  • 10진수는 0부터 9까지의 10개의 숫자를 사용하여 수를 표현하는 방식입니다. 예를 들어, 123을 표현하면 다음과 같습니다.

    123 = 1 x 10^2 + 2 x 10^1 + 3 x 10^0

  • 2진수는 0과 1 두 개의 숫자를 사용하여 수를 표현하는 방식입니다. 예를 들어, 1011을 표현하면 다음과 같습니다.

    1011 = 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 2^0

  • 8진수는 0부터 7까지의 8개의 숫자를 사용하여 수를 표현하는 방식입니다. 예를 들어, 173을 표현하면 다음과 같습니다.

    173 = 1 x 8^2 + 7 x 8^1 + 3 x 8^0

  • 16진수는 0부터 9까지의 10개의 숫자와 A부터 F까지의 6개의 문자를 사용하여 수를 표현하는 방식입니다. 예를 들어, 2F3을 표현하면 다음과 같습니다.

출처


(1) 1장 컴퓨터 내부의 언어체계 - 벨로그.
(2) [CS] 아스키코드(ASCII), 유니코드(Unicode), UTF-8 에 대해 - 컴퓨터
(3) 1장. 1 컴퓨터 내부의 언어 체계 - 벨로그.
(4) [컴퓨터 구조] 컴퓨터 내부의 언어체계 (1) : 네이버 블로그.
(5) 1장_컴퓨터 내부의 언어체계(~정수의 표현하는 방법) - 벨로그.