[CS] 0과 1의 세계

MOON HEE·2022년 8월 11일
0

Computer Science

목록 보기
1/15
post-thumbnail
/* 모두를 위한 컴퓨터 과학(CS50 2019) 정리본입니다. */

멋사 수료 후 개인 공부시간이 많아졌다. 개인 프로젝트도 중요하지만 컴퓨터 기초지식을 쌓는 시간으로 사용할 수도 있을 것 같아서 무료 강의를 잘 활용하기로 했다.

1. Computer Science


컴퓨터 과학은 문제 해결에 대한 학문이다.
문제 해결은 입력(input)을 전달받아 출력(output)을 만들어내는 과정이다.
그 중간에 있는 과정이 컴퓨터 과학이다.

이러한 입력과 출력을 표현하기 위해서는 표준이 필요하다.
따라서 컴퓨터 과학의 가장 첫번째 개념은 어떻게 표현할 것인가에 대한 방법론이다.

2. binary


컴퓨터는 0과 1만 사용한다.
익숙한 10진수의 표현원리를 통해 2진수에 대해 간단하게 파악해보면 다음과 같다.

10^210^110^0
000

2^22^12^0
000

우리가 아는 3을 표현하려면 10진법과 2진법으로 각각 이렇게 나올 거다.

10^210^110^0
003

2^22^12^0
011

(2x1 + 1x1 = 3)

마찬가지로 4가 되려면?

2^22^12^0
100

즉 2진법에서는 bi가 2를 뜻하므로 100은 우리가 아는 10진법의 100이 아니라 10진법의 4를 의미한다.

3. bit (binary digit)


만약 8을 나타내고 싶다면 위 예시에서는 자릿수가 더 필요하다.
실제로는 이렇게 더 많은 0과 1이 필요한데 이를 비트(bit)라고 부른다. 즉 더 많은 비트(=0과 1)가 필요하다. 비트는 일종의 측정 단위이다.

바이트(byte)는 8개의 비트를 의미하는 효과적인 단위다. (💡💡💡💡💡💡💡💡)

갑자기 왠 전구?
하나의 비트(0, 1)는 컴퓨터 내부에서 물리적으로 표현될 때 켜고 끌 수 있는 스위치라고 할 수 있다.
(켜기=1, 끄기=0)

실제로 컴퓨터 안에는 트랜지스터라는 아주 작은 스위치가 엄청 많이 있다.
컴퓨터는 이 트랜지스터를 물리적으로 이용해서 정보를 표현하고 값을 저장한다.
그래서 만약 컴퓨터가 50이라는 숫자를 표현하려 한다면

1286432168421
💡💡💡
110010

이렇게 3개의 스위치를 켜고 각각에 아주 조금의 전기를 저장해서 숫자 50을 나타내는 거다.
나머지 스위치는 모두 끈다.

이게 바로 컴퓨터가 정보를 표현할 때마다 컴퓨터 안에서 벌어지고 있는 일이다.

하나의 바이트에 8개의 비트가 있고, 비트 하나는 0과 1로 표현될 수 있기 때문에 256개(2^8)의 서로 다른 바이트가 존재할 수 있다.
바이트가 모이면 더 큰 단위가 될 수 있다.

profile
자고 일어나면 해결되는게 더 많은 듯 그럼 잘까

0개의 댓글