본문 바로가기
ComputerScience/CS50

01. [CS] 2진법, 정보의 표현

by staticClass 2020. 12. 15.

2진법

보통 2진수 계산을 할 때
33을 예로 들면

계속 2로 나눈다.. 33을 2로 나누면 16이고 나머지가 1 남음..
33
16 ... 1
 8 ... 0
 4 ... 0
 2 ... 0
 1 ... 0
 
 33의 2진수 : 100001

나머지와 가장 마지막 결과 1을 아래에서부터 위로 나열해서
100001의 결과를 얻는 방식의 계산을 할 것이다.
이것도 맞지만 다른 방법이 있다.

 

컴퓨터 메모리에 대한 이야기 부터 시작해야한다.
컴퓨터에는 트렌지스터 라는 전기를 저장하는 공간이 있고
이 공간에 전기를 흘려보내면 1, 아니면 0 이 되는 원리로 컴퓨터가 동작한다.

 

이때 이 1과 0이 저장될수 있는 공간 1칸을 bit(비트)라고 하고
이게 8개가 모이면 byte(바이트)가 된다.
보통 숫자나 문자를 표현할때 이 바이트를 이용하게 되는데

 

바이트의 각 한칸 한칸인 비트는 이렇게 채워진다.

8번 7번 6번 5번 4번 3번 2번 1번
2^8 2^7 2^5 2^4 2^3 2^2 2^1 1
128 64 32 16 8 4 2 1

만약 위에서처럼 33의 숫자를 컴퓨터가 입력하려면?

컴퓨터는 6번과 1번에 전기를 흘려보내 비트(bit)에 1을 입력해주게 된다.

그렇게 되면 하나의 바이트가 가지고 있는 값은

0 0 1 0 0 0 0 1 가 되고 위에서 계산해서 얻은 결과와 동일한 값이 나온다.

즉 컴퓨터가 스위치를 ON/OFF 하면서 숫자를 표현하고 있는 것이다.

 

정보의 표현

그렇다면 숫자가 아닌 문자, 사진, 소리는?

이제 여기서 ASCII(아스키코드)가 나온다.

아스키코드는 약속이자 지도 인데

예를 들어 컴퓨터가 바이트65를 가지고 있다고 하면

알파벳 A를 표현해주기로 약속 66을 가지고 있으면 B, 67은 C....

이런식으로 약속을 해둔 것이다.

HI 는? 
H : 72 : 1001000
I : 73 : 1001001

댓글