데이터

헨도·2024년 12월 1일
0

CS + 운영체제

목록 보기
2/5
post-thumbnail

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

컴퓨터가 이해할 수 있는 정보의 단위

비트(bit)

  • 0과 1을 표현하는 가장 작은 정보 단위

ex) 2비트로 표현할 수 있는 정보 - 00, 01, 10, 11
ex) 3비로 표현할 수 있는 정보 - 000, 001, 010, 011 ...

정보 단위

  • n 비트로 2^n 가지의 정보 표현 가능
  • 프로그램은 수 많은 비트로 이루어져 있다.
  • 평소 이 파일은 "8,920,120 비트야" 라고 표현하지 않는다.
    - 비트보다 더 큰 단위 사용
    • ex) byte, kB, MB ...
    • 1 byte = 8 bit
    • 1 kB (킬로 바이트) = 1000 byte
    • 1 MB (메가 바이트) = 1000 kB

워드(word)

  • CPU 가 한번에 처리할 수 있는 정보의 크기 단위
  • 하프 워드(half word): 워드의 절반 크기
  • 풀 워드(full word): 워드 크기
  • 더블 워드(double word): 워드의 2배 크기

이진법(Binary)

  • 0 과 1로 숫자 표현하기
  • 숫자가 1을 넘어가는 시점에 자리올림
10진법2진법
11
210
311
4100

0과 1로 음수 표현하기 (2의 보수)

  • 어떤 수를 그보다 큰 2^n 에서 뺀 값
  • 모든 0과 1을 뒤집고 1을 더한 값
  • ex) (2진수) 11의 음수 -> 00 -> 00 + 1 -> 01

16진법

  • 2진법으로는 큰 수를 표현하기엔 숫자의 길이가 너무 길어진다.
    ex) (10진수) 32 == (2진수) 10000
  • 그래서 컴퓨터의 데이터를 표현할 때 16진법도 많이 사용
  • 수가 15를 넘어가는 시점에 자리를 올린다.
01234567891011121314151617...
0123456789ABCDEF1011...

0과 1로 데이터 표현하는 방법

문자 집합과 인코딩

문자 집합(character set)

  • 컴퓨터가 이해할 수 있는 문자 모음

인코딩(encoding)

  • 코드화하는 과정
  • 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정

디코딩(decoding)

  • 코드를 해석하는 과정
  • 0과 1로 표현된 문자 코드로 변환하는 과정

아스키 코드(ASCII)

  • 초창기 문자 집합 중 하나
  • 알파벳, 아라비아 숫자, 일부 특수문자 및 제어문자
  • 7비트 중 하나의 문자 표현
    - 8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)

장점과 단점

  • 간단한 인코딩
  • 한글을 포함한 다른 언어 문자, 다양한 특수 문자 표현 불가
    - 아스키 코드는 7비트로 하나의 문자를 표현하기에 128개보다 많은 문자를 표현할 수 없음
    • 8비트 확장 아스키 (extended ASCII) 의 등장 -> 여전히 부족하다.

한글 인코딩

  • 초성, 중성, 종성으로 이루어진 한글
  • 완성형 인코딩 방식과 조합형 인코딩 방식이 존재한다.

ex)
강 -> 1111 등록 -> 완성형
ㄱ + ㅏ + ㅇ -> 0001 + 0110 + 1001 등록 -> 조합형

  • EUC-KR: 완성형 인코딩

유니코드 문자 집합과 utf-8

유니코드

  • 통일된 문자 집합
  • 한글, 영어, 화살표 같은 특수문자, 심지어 이모티콘까지
  • 현대 문자 표현에 있어 매우 중요한 위치

유니코드 인코딩 방식

  • utf-8, 16, 32
profile
Junior Backend Developer

0개의 댓글