[CS : 컴퓨터 구조] 데이터 : 02-2 0과 1로 문자를 표현하는 방법

2023. 10. 20. 17:08·Computer Science/컴퓨터 구조

A) 문자 집합과 B) 인코딩

  • 문자 집합(character set) : 컴퓨터가 이해 할 수 있는 문자의 모음
  • 인코딩(encoding) : 코드화하는 과정, 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정
  • 디코딩(decoding) : 코드를 해석하는 과정, 0과 1로 표현된 문자 코드로 문자로 변환하는 과정

A) 문자집합 : 아스키 코드

  • 초창기 문자 집합 중 하나로써 알파벳, 아라비아 숫자, 일부 특수 문자 및 제어문자
  • 7비트로 하나의 문자 표현(8비트 중 1비트는 오류 검출을 위해 사용되는 패리트 비트(parity bit) → (표현할 수 있는 문자의 개수는 2의7승 = 128개)
  • c.f.) 코드 포인트(code point) == 문자에 부여된 값, A == 65, a == 97
  • 간단한 인코딩이라는 장점이 있지만 한글을 포함한 다른 언어 문자, 다양한 특수 표현이 불가능하다.
더보기
  • 아스키 코드는 7비트로 하나의 문자를 표현하기에 128개 보다 많은 문자를 표현할 수 없다. 8비트 확장 아스키(extended ASCII)가 등장했지만 여전히 부족하다.

B) 인코딩 : 한글 인코딩 : 완성형 VS 조합형 인코딩

  • 한글을 위한 인코딩이 필요함
  • 알파벳을 이어쓰면 단어가 되는 영어와 다르게 초성, 중성, 종성의 조합으로 이루어진 한글은 완성형 인코딩 방식과 조합형 인코딩 방식이 존재한다.

완성형 : 글자 자체에 코드값 부여, 조합형 : 개별로 부여된 코드값을 조합

 

B) 인코딩 : EUC-KR

  • KS X 1001KS X 1003 문자 집합 기반의 한글 인코딩 방식
  • 완성형 인코딩
  • 글자 하나 하나에 2바이트 크기의 코드 부여(2바이트 == 16비트 == 4자리 16진수로 표현)
  • 2300 여개의 한글 표현이 가능하지만 모든 한글을 표현하기에는 부족한 수이다.(쀏, 뙠, 휔 같은 한글은 표현 불가)
  • 다국어를 지원하는 프로그램을 개발할 땐 언어별 인코딩 방식을 모두 이해해야한다. 따라서 불편하고 번거롭다.
더보기

직접 인코딩 해볼 수 있는 사이트 : https://dencode.com/

B) 인코딩 : 유니코드 문자 집합과 utf-8

  • 유니코드 : 통일된 문자 집합(한글, 영어, 화살표와 같은 특수문자, 이모티콘까지
  • 유니코드의 인코딩 방식 : utf-8, utf-16, utf-32 ···
더보기

유니코드 문자 집합 : https://unicode-table.com/en/blocks/

B) 인코딩 : utf-8

  • UTF(Unicode Transformation Format) = 유니코드 인코딩 방법
  • 가변길이 인코딩 : 인코딩 결과가 1바이트 ~ 4바이트
  • 인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값에 따라 다르다.
  • 유니코드에 부여된 값 == 유니코드 코드 포인트

utf-8 인코딩 방식

 

더보기

직접 인코딩 해볼 수 있는 사이트 : https://onlineutf8tools.com/convert-utf8-to-binary

 

 

 

 

 

출처: 인프런-개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard
저작자표시

'Computer Science > 컴퓨터 구조' 카테고리의 다른 글

[CS : 컴퓨터 구조] C 언어의 컴파일 과정  (1) 2023.10.25
[CS : 컴퓨터 구조] 03-2 명령어의 구조  (1) 2023.10.24
[CS : 컴퓨터 구조] 명령어 : 03-1 소스코드와 명령어  (0) 2023.10.23
[CS : 컴퓨터 구조] 데이터 : 02-1 0과 1로 숫자를 표현하는 방법  (0) 2023.10.19
[CS : 컴퓨터 구조] 컴퓨터 구조에 대하여  (1) 2023.10.18
'Computer Science/컴퓨터 구조' 카테고리의 다른 글
  • [CS : 컴퓨터 구조] 03-2 명령어의 구조
  • [CS : 컴퓨터 구조] 명령어 : 03-1 소스코드와 명령어
  • [CS : 컴퓨터 구조] 데이터 : 02-1 0과 1로 숫자를 표현하는 방법
  • [CS : 컴퓨터 구조] 컴퓨터 구조에 대하여
JinSeong
JinSeong
재미없으면 안한다.
  • JinSeong
    As you think, so shall you become.
    JinSeong
  • 전체
    오늘
    어제
    • 분류 전체보기 (96)
      • 📆 Today I Learned(개발언어학습) (76)
        • JAVA (20)
        • HTML (1)
        • JSP (46)
        • SPRING (2)
        • ORACLE(DB) (6)
        • CSS (1)
      • 📆 Today I Learned(코딩테스트) (0)
        • JAVA (0)
      • Computer Science (9)
        • 컴퓨터 구조 (9)
        • 운영체제 (0)
        • 자료구조 & 알고리즘 (0)
        • 데이터베이스 (0)
      • 창고 (11)
        • 기초지식 (7)
        • 파일창고 (0)
        • 기술지식창고 (0)
        • 버그버그 👀 (4)
      • Tools🔧 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    이클립스 오버라이딩 메소드 자동 생성 기능
    java json리턴 에러
    instanceof 연산자
    DB
    SQL
    ALU
    환경변수 차이
    JAVA문자열자르기
    CPU
    java 스케줄러
    제어장치
    no converter found for
    레지스터
    substring()
    spring 스케줄러
    jdk구분
    java버전 표현
    java 객체타입확인
    명령어
    Oracle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JinSeong
[CS : 컴퓨터 구조] 데이터 : 02-2 0과 1로 문자를 표현하는 방법
상단으로

티스토리툴바