Chap2 데이터

생성 일시: 2023년 8월 10일 오후 8:47

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

02 데이터

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

컴퓨터가 이해하는 정보 단위, 이진법과 십육진법을 통해 다양한 숫자를 표현하는 방법에 대해 학습

정보 단위

0과 1을 나타내는 가장 작은 정보 단위: 비트 bit → 2가지 정보 표현

N개의 비트로 표현할 수 있는 정보는 $2^N$ 가지

Data

이진법

0과 1로 숫자를 표현하는 방식. 이건 14살에 배웠다….

이진수 표기

  • 1000(2) : 수학적으로 표기할 때
  • 0b1000 (binary) : 코드 상에서 이진수 표현할 때

이진수의 음수 표현

마이너스 부호를 사용하지 않고 음수를 표현하려면?

2의 보수 구하기 (two’s complement)

보수란? 어떤 수를 그보다 큰 $2^n$에서 뺀 값

ex) 11(2) 의 2의 보수는 100(2) - 11(2) = 01(2)

or 모든 0과 1을 뒤집고, 거기에 1을 더한 값

!!!! 컴퓨터의 연산 자리수는 32bit, 64bit기 때문에 110, 1002 등의 세 자리, 네 자리 수더라도 앞에 빈 자리가 있음.

보수를 쓴다 해도 양수인지 음수인지 어떻게 구분할까?

컴퓨터 내부에서 어떤 수를 다룰 때 양수인지 음수인지 구분하기 위해 플래그를 사용한다. 그래서 컴퓨터가 헷갈일 일은 없다…. → 우리는? ㅠㅠ

++ 2의 보수 표현의 한계

보수를 취했을 때 자신과 같은 결과가 나오는 경우가 있음. ex) 1000(2)

십육진법

이진법을 이용해 0과 1로 숫자를 표현하면 숫자가 너무 길어진다는 단점 발생!

→ 십육진법(hexadecimal)으로 숫자를 표현

0, 11, 12, 13, 14, 15를 각각 A, B, C, D, E, F로 표현

숫자 뒤에 아래 첨자 (16)을 붙이거나 숫자 앞에 0x를 붙여 구분한다

십육진수를 이진수로 변환하기

십육진법은 한 글자당 열여섯 종류 숫자를 표현할 수 있다. 이를 이진수로 바꾸려면 4비트가 필요하다.

십육진수 한 글자는 4비트의 이진수이기 때문에 한 글자씩 이진법으로 변환한다.

이진수를 십육진수로 변환하기

이진수 숫자를 네 개씩 끊고, 끊어 준 네 개의 숫자를 하나씩 십육진수로 변환하고 이어붙인다.

++ 하드웨어와 관련 있는 분야에서는 코드에 직접 십육진수를 쓰기도 한다.

02-2. 0과 1로 문자를 표현하는 방법

문자 집합과 인코딩

문자 집합

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

문자 인코딩

문자를 0과 1로 변환하는 과정

문자 디코딩

0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정