[혼공컴운] Chap 2. 데이터

반디·2023년 1월 7일
0

컴구/OS

목록 보기
2/9

정보 단위

  • 비트: 0과 1을 나타내는 가장 작은 정보 단위
  • 바이트: 여덟 개의 비트를 묶은 단위
  • 워드: CPU가 한 번에 처리할 수 있는 데이터의 크기 (CPU에 따라 달라짐)

이진수의 음수 표현

  • 2의 보수: 어떤 수를 그보다 큰 2n2^n에서 뺀 값
    ex) 11(2)11_{(2)} 의 보수: 100(2)11(2)=01(2)100_{(2)} - 11_{(2)} =01_{(2)}
    혹은, 모든 0과 1을 뒤집고 거기에 1을 더한 값으로도 생각할 수 있다.
    ex) 11(2)00(2)+1(2)=01(2)11_{(2)} \rightarrow 00_{(2)} + 1_{(2)} = 01_{(2)}

Q. 01(2)01_{(2)}11(2)11_{(2)}의 음수표현인지 십진수 1의 이진수 표현인지 어떻게 구분할까?
A. 플래그 사용

16진수 \leftrightarrow 2진수

16진수 한 글자 \leftrightarrow 4 비트 이진수
ex) 1A2B(16)=0001101000101011(2)1A2B_{(16)} = 0001101000101011_{(2)}
1(16)=0001(2)1_{(16)} = 0001_{(2)}, A(16)=1010(2)A_{(16)} = 1010_{(2)}, 2(16)=0010(2)2_{(16)} = 0010_{(2)}, B(16)=1011(2)B_{(16)} = 1011_{(2)}

p.65 확인문제
3번
1101(2)1101_{(2)}의 음수를 2의 보수 표현법으로 구해보기
1101(2)0010(2)+1(2)=0011(2)1101_{(2)} \rightarrow 0010_{(2)} + 1_{(2)} = 0011_{(2)}

문자 인코딩/디코딩

  • 인코딩: 문자 \rightarrow 0과 1로 변환
    - 코드 포인트: 글자에 부여된 고유한 값
  • 디코딩: 0과 1 \rightarrow 문자로 변환
  1. 아스키 코드
    영어 알파벳, 아라비아 숫자, 일부 특수 문자로 구성된 총 128개 문자 집합
    각 문자는 7비트로 표현 가능

    https://velog.io/@exploit017/%EC%95%84%EC%8A%A4%ED%82%A4-%EC%BD%94%EB%93%9C%ED%91%9C

  2. EUC-KR
    KS X 1001, KS X 1003이라는 문자 집합을 기반으로 하는 대표적인 완성형 한글 인코딩 방식

  • 완성형 인코딩: 초성, 중성, 종성의 조합으로 완성된 글자에 고유한 코드를 부여
    ex) '가'= 1, '나' = 2
  • 조합형 인코딩: 각 초성, 중성, 종성에 비트열을 할당하여 조합

EUC-KR은 한글 한 글자에 2바이트=16비트 코드를 부여
즉, EUC-KR로 인코딩된 한글은 네 자리 16진수로 표현

https://ithub.tistory.com/277

  1. CP949
    EUC-KR로는 표현할 수 없는 문자까지 커버하고자 고안된 방식

    https://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%ED%8E%98%EC%9D%B4%EC%A7%80_949

  2. UTF-8

  • 유니코드: 여러 나라의 문자를 아우르는 표준 문자 집합
    각 글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고 이 값을 다양한 방식으로 인코딩 ex) UTF-8, UTF-16 등
  • UTF-8: 1바이트 ~ 4바이트까지의 인코딩 결과를 만듦

코드 포인트 범위에 따른 UTF-8 인코딩 방식 https://d2.naver.com/helloworld/76650

참고문헌
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=299014282&start=slayer

profile
꾸준히!

0개의 댓글