📗 BOOK/혼자 공부하는 컴퓨터구조+운영체제

혼자 공부하는 컴퓨터 구조+운영체제 2장 정리

미미누 2024. 7. 10. 03:04

정보 단위

  • 0과 1을 나타내는 가장 작은 정보 단위를 비트라고 한다.
  • n비트는 2^n가지 정보를 표현 할 수 있다.
  • 바이트는 여덟 개의 비트를 묶은 단위로, 비트보다 한 단계 큰 단위이다.
  • 1바이트는 8비트와 같으니 2^8 개의 정보를 표현할 수 있다.
  • 1바이트 1,000개를 묶은 단위를 1킬로바이트이다.
  • 1킬로바이트 1,000개를 묶은 단위를 1메가바이트이다.
  • 1메가바이트 1,000개를 묶은 단위를 1기가바이트이다.
  • 1기가바이트 1,000개를 묶은 단위를 1테라바이트이다.
  • 워드란 CPU가 한 번에 처리할 수 있는 데이터 크기를 의미한다.
  • 만약 CPU가 한 번에 16비트를 처리할 수 있다면 1워드는 16비트가 된다.
  • 현대 컴퓨터의 워드 크기는 대부분 32비트 또는 64비트이다.

이진법

  • 수학에서 0과 1만으로 모든 숫자를 표현하는 방법을 이진법이라고 한다.
  • 이진법으로 표현한 수를 이진수, 십진법으로 표현한 수를 십진수라고 한다.

이진수의 음수 표현

  • 0과 1만으로 음수를 표현하는 방법 중 하나는 2의 보수를 구하는 것
  • 모든 0과 1을 뒤집고 거기에 1을 더한 값으로 이해하면 된다.
  • 모든 이진수의 0과 1을 뒤집은 수를 1의 보수라고 한다.
  • 거기에 1을 더한 값을 2의 보수라고 한다.
  • 컴퓨터 내부에서는 이 수가 양수인지 음수인지를 구분하기 위해 플래그를 사용한다.
  • N비트로는 -2^N과 2^N이라는 수를 동시에 표현 못한다.

16진법

  • 16진법은 수가 15를 넘어가는 시점에 자리 올림을 하는 숫자 표현 방식
  • 수학적 표기 방식 15(16), 코드상 표기 방식 0x15

16진수를 이진수로 변환하기

  • 십육진수 한 글자를 4비트의 이진수로 간주하자.
  • 십육진수를 이루고 있는 각 글자를 따로따로 이진수로 변환하고, 그것들을 그대로 이어 붙이면 십육진수가 이진수로 변환된다.
  • 1A2B(16)- → 0001(2) 1010(2) 0010(2) 1011(2)로 표현 가능하다.

이진수를 16진수로 변환하기

  • 11010101(2) → D(15) 5(16)으로 변환 가능하다.

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

문자 집합과 인코딩

  • 컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 문자 집합이라고 한다.
  • 문자 집합에 속한 문자라고 해서 컴퓨터가 그대로 이해할 수 있는 건 아니다. 문자를 0과 1로 변환하는 과정을 문자 인코딩이라고 한다.
  • 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정을 문자 디코딩이라고 한다.

아스키 코드

  • 아스키는 초창기 문자 집합 중 하나로, 영어 알파벳과 아라비아 숫자, 그리고 일부 특수 문자를 표현합니다. 아스키 문자 집합에 속한 문자들은 각각 7비트로 표현되는데, 128개의 문자를 표현할 수 있다.
  • 아스키 코드를 이진수로 표현함으로써, 아스키 문자를 0과 1로 표현 가능하다.

ECU-KR

  • 한글 인코딩에는 두 가지 방식, 완성형(한글 완성형 인코딩), 조합형(한글 조합형 인코딩)이 존재한다.
  • 완성형 인코딩 방식은 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여하는 방식이다.
  • 조합형 인코딩 방식은 초성을 위한 비트열, 중성을 위한 비트열, 종성을 위한 비트열을 할당하여 그것들의 조합으로 하나의 글자 코드를 완성하는 인코딩 방식이다.
  • ECU-KR 인코딩은 초성, 중성, 종성이 모두 결합된 한글 단어에 2바이트의 크기를 부여한다.
  • CP949는 ECU-KR의 확장된 버전으로 표현할 수 없는 더욱 다양한 문자를 표현 가능하다.

유니코드와 UTF-8

  • 유니코드는 여러 나라의 문자를 광범위하게 표현할 수 있는 통일된 문자 집합이다.
  • 글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고, 이 값을 UTF-8, UTF-16, UTF-32로 인코딩한다.

UTF-8

  • 유니코드 문자에 부여된 값의 범위가 0부터 007F(16)까지는 1바이트로 표현
  • 유니코드 문자에 부여된 값의 범위가 0080(16)부터 07FF(16)까지는 2바이트로 표현
  • 유니코드 문자에 부여된 값의 범위가 0800(16)부터 FFFF(16)까지는 3바이트로 표현
  • 유니코드 문자에 부여된 값의 범위가 10000(16)부터 10FFFF(16)까지는 4바이트로 표현