본문 바로가기

Computer Structure & Operating System/2025 version

Computer Structure & OS(2) - 0과 1로 숫자 및 문자를 표현하는 방법

728x90
반응형

1) 0과 1로 숫자를 표현하는 방법

    1-1) 정보 단위

    1-2) 이진법

    1-3) 십육진법

2) 0과 1로 문자를 표현하는 방법

    2-1) 문자 집합과 인코딩
    2-2) 아스키 코드(ASCII)

    2-3) EUC-KR
    2-4) 유니코드와 UTF-8

 

 

 

 

 

1) 0과 1로 숫자를 표현하는 방법

1-1) 정보 단위

  • 비트(bit) : 0과 1을 표현할 수 있는 가장 작은 정보 단위(n 비트는 2의 n제곱 가지의 정보를 표현할 수 있음)
  • 바이트(byte) : 8개의 비트를 묶은 단위로, 비트보다 한 단계 큰 단위(2의 8제곱, 즉 256개의 정보 표현 가능)
  • 킬로바이트(kB) : 1바이트 1000개를 묶은 단위
  • 메가바이트(MB) : 1킬로바이트 1000개를 묶은 단위
  • 기가바이트(GB) : 1메가바이트 1000개를 묶은 단위
  • 테라바이트(TB) : 1기가바이트 1000개를 묶은 단위
  • 워드(word) : CPU가 한 번에 처리할 수 있는 데이터 크기를 의미함(x86 CPU는 32비트 워드 CPU / x64 CPU는 64비트 워드 CPU)

 

 

1-2) 이진법(이진수 앞에 0b를 붙이는 것이 코드 상에서 주로 표기하는 방법임)

이진법 : 수학에서 0과 1만으로 모든 숫자를 표현하는 방법(이진법은 1을 넘어가는 시점에 자리 올림을 하여 0과 1만으로 모든 수를 표현하는 방법)

 

이진수의 음수 표현 : 컴퓨터는 2의 보수를 음수로 간주함

  • 0과 1만으로 음수를 표현하는 방법 중 가장 널리 사용되는 방법은 2의 보수(two's complement)를 구해 이 값을 음수로 간주하는 방법  >>  2의 보수 : 어떤 수를 그보다 큰 2의 n제곱에서 뺀 값
  • 모든 0과 1을 뒤집고, 거기에 1을 더하는 방법 : 1의 보수(모든 이진수의 0과 1을 뒤집은 수), 2의 보수(1의 보수에 1을 더한 값)

※ 컴퓨터 내부에서 어떤 수를 다룰 때는 이 수가 양수인지 음수인지를 구분하기 위한 일종의 부가 정보인 플래그(flag)를 사용함

 

 

1-3) 십육진법(이진수 앞에 0x를 붙이는 것이 코드 상에서 주로 표기하는 방법임)

십육진법 : 수가 15를 넘어가는 시점에 자리 올림을 하는 숫자 표현 방식(0~9, A~F의 총 16개의 정보 표현 가능)

 

 

 

 

2) 0과 1로 문자를 표현하는 방법

2-1) 문자 집합과 인코딩

  • 문자 집합(character set) : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음(컴퓨터는 문자 집합에 속해 있지 않은 문자는 이해할 수 없음)
  • 문자 인코딩(character encoding) : 문자를 컴퓨터가 이해할 수 있는 0과 1로 변환하는 과정
  • 문자 디코딩(character decoding) :0과 1로 이루어진 문자 코드()를 사람이 사람이 이해할 수 있는 문자로 변환하는 과정

 

2-2) 아스키 코드(ASCII)

아스키 코드 : 초창기 문자 집합 중 하나로, 영어 알파벳과 아라비아 숫자, 그리고 일부 특수 문자를 포함함

아스키 문자 집합에 속한 문자들은 각각 7비트로 표현되는데 7비트로 표현할 수 있는 정보의 가짓수는 2의 7제곱으로 총 128개의 문자를 표현할 수 있음(실제로는 아스키 문자를 나타내기 위해 8비트를 사용하지만 이 중 1비트는 parity bit라고 불리는 오류 검출에 사용되는 비트이기 때문에 실질적으로 문자 표현에 사용되는 비트는 7비트임)

※ 문자 인코딩에서 '글자에 부여된 고유한 값'을 코드 포인트(code point)라고 함

 

 

2-3) EUC-KR

EUC-KR : 한글을 2바이트 크기로 인코딩할 수 있는 완성형 인코딩 방식에 해당함

※ 한글 인코딩에는 두 가지 방식이 존재하는데 완성형과 조합형이다!

  • 완성형 인코딩 방식 : 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여하는 인코딩 방식
  • 조합형 인코딩 방식 : 초성을 위한 비트열, 중성을 위한 비트열, 종성을 위한 비트열을 할당하여 그것들의 조합으로 하나의 글자 코드를 완성하는 인코딩 방식

 

 

2-4) 유니코드와 UTF-8

  • 유니코드(Unicode) : 여러 나라의 문자를 광범위하게 표현할 수 있는 통일된 문자 집합
  • UTF-8 : 유니코드를 인코딩하는 방법(UTF는 Unicode Transformation Format의 약자) 중 가장 대중적인 방식으로, 이외에 UTF-16과 UTF-32 등이 존재함