0과 1로 어떻게 숫자 & 문자를 표현하지?!

hongxeob·2022년 12월 19일
0

컴퓨터 구조

목록 보기
2/14

컴퓨터는 0과 1로 모든 정보를 표현하고, 0과1로 표현된 정보만을 이해 할수 있다! 그런데..?

우리는 컴퓨터가 표현하는 정보 단위를 알 필요가 있다.
그리고 0과 1만으로 숫자를 표현하는 방법 또한 알아야 한다!

컴퓨터가 이해하는 정보 단위

  • 비트 (bit): 0과 1을 표현하는 가장 작은 정보 단위(ex-꺼짐or켜짐)
  • 바이트 : 여덟개의 비트를 묶은 단위
  • 단위가 커지면 킬로바이트(kB),메가바이트(MB),기가바이트(GB),테라바이트(TB)등도 있다
  • 워드
    - CPU가 한 번에 처리할 수 있는 정보의 크기 단위
    - 하프 워드, 풀 워드, 더블 워드 등이 있다

이진법

  • 0과 1로 수를 표현 하는 방법
  • 숫자가 1을 넘어가는 시점에 자리 올림
  • 우리가 일상적으로 사용하는 9를 넘어설때 자리올림을 하는 진법은 10진법

이진법의 음수 표현 방법

  • 2의 보수
  • 모든 0과 1을 뒤집고 1 더한 값

십육진법

  • 십진수가 0,1,2,3,------10,11,12,13,14,15,16,17 이면
  • 십육진수는 0,1,2,3,----8,9,A,B,C,----E,F,10(자리올림),11,----

지금까지가 0과 1로 다양한 숫자를 표현하는 방법이었다면
이번엔 다양한 문자들은 어떻게 표현 할까?

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

문자 집합과 인코딩

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

아스키 코드

  • 초창기 문자 집합 중 하나
  • 알파벳(대소문자 포함),아라비아 숫자,일부 특수 문자 및 제어 문자
  • 7비트로 하나의 문자 표현
    - 8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)
  • 간단한 인코딩이지만 한글을 포함한 다른 언어 문자, 다양한 특수문자 표현이 불가 하다

한글 인코딩

  • 완성형 인코딩
    - 완성된 단어 하나 하나에 코드를 부여해서 합치는 방법(홍+길+동)
  • 조합형 인코딩
    - 초정,중성,종성등 각각의 모음 자음에 일일이 코드를 부여해서 하는 법(ㅎ+ㅗ+ㅇ+ㄱ+ㅣ+ㄹ----)

EUC-KR

  • 2300여개의 한글 표현 가능
  • 여전히 모든 한글을 표현하기에는 부족하다
  • 뷁,샒 과 같은 한글은 표현이 불가
    -> 이렇게 하면 다국어 프로그램을 만들면 모든 언어의 인코딩 방식을 이해 해야한다..OMG

모든 언어, 특수문자까지 통일된 문자 집합을 사용하면 어떨까?
그런 모든 것을 인코딩 해주는 방식이 있다면?!

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

유니코드

  • 한글,영어,화살표,이모티콘등 모두 통일된 문자 집합

유니코드의 인코딩 방식

  • utf-8,utf-16,utf-32 ----...등이 있다

utf-8 인코딩

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

본 게시물은 한빛 미디어 <혼자 공부하는 컴퓨터구조+운영체제>를 읽고 공부한 것을 기록한 게시물입니다.

profile
걍 하자 저스트 뚜잇

0개의 댓글