CS 컴퓨팅 사고 - 2진법

REASON·2022년 8월 26일
0

CS

목록 보기
1/7

컴퓨터 과학

컴퓨터과학은 문제 해결에 대한 학문으로 입력과 출력을 만들어내는 과정인데 인풋과 아웃풋 중간에 있는 것이 컴퓨터 과학이다.

2진법은 0과 1의 조합이다.

우리는 10진법의 수 123을 볼 때
1의 자리가 3, 10의 자리가 2, 100의 자리가 1로 본다. 본능적으로 계산하는 수학 때문이다.

즉, 100 x 1 + 10 x 2 + 1 + 3을 계산한다는 것이다.
하지만 컴퓨터 세계에서는 0과 1뿐이다.

컴퓨터는 10의 거듭제곱 대신 2의 거듭제곱을 사용한다.

가장 오른쪽 열은 1, 그다음은 2, 그 다음은 4..
이를 반복하면 10진수가 천, 만, 십만이 되는 것과 달리 8, 16, 32 ... 와 같은 숫자가 된다.
하지만 원리는 정확히 동일하다.
2진수로 3을 표현할 때는 011 과 같이 표현할 수 있다.
(2 * 1) + (1 * 1) = 3 이기 때문이다.
그리고 10진수에서 9가 10으로 넘어가는 것처럼 3에서 4로 넘어가기 위해서는 1을 가져오게 된다.
2진수 100 이 4를 의미한다는 것이다.

2진법에서는 bi가 2를 뜻하므로 100은 숫자 100이 아니라 우리가 아는 숫자 4가 된다.

비트

만약 8을 2진수로 표현하고 싶다면 어떻게 할까?
앞에서는 0과 1 3자리로 표현하고 있었기 때문에 8을 표현하려면 지금보다 많은 0과 1이 필요할 것이다.

이것을 비트라고 표현한다.

비트는 0또는 1을 의미한다.

우리는 핸드폰이나 노트북을 충전할 때 물리적인 자원과 연결한다. 전기가 우리의 유일한 입력이라면 전기가 있다, 없다 2가지로 존재할 수 있다.

이는 2진법과 비슷한 의미로 이것을 표현할 때는 0과 1. 꺼짐과 켜짐 두가지 기호로 이용할 수 있다.

컴퓨터는 많은 수의 비트를 활용하여 정보를 표현한다.

바이트

바이트는 8비트, 8개의 1과 0을 의미하는 더욱 효과적인 단위이다. 바이트가 모이면 더 큰 단위가 된다.

비트 > 바이트 > 킬로바이트 > 메가바이트 > 기가바이트 > 테라바이트 …

트랜지스터는 컴퓨터 속에 있는 아주 작은 스위치이다.

컴퓨터는 트랜지스터를 수백만, 수십억 개를 가지고 있다. 이 트랜지스터를 물리적으로 이용해서 정보를 표현하고 값을 저장한다.

그래서 만약 컴퓨터가 50이라는 숫자를 표현하고 싶다면 3개의 스위치(32, 16, 2)를 켜고 각각에 아주 조금의 전기를 저장하여 숫자 50을 나타내는 것이다. 그리고 나머지의 스위치를 모두 끈다.
이 경우에는 1바이트(8비트)를 사용하고 있기 때문에 5개의 스위치를 끈다는 의미이다.

켜는 것은 1, 끄는 것은 0을 나타낸다.


생각해보기

5를 2진법으로 바꾸면?
101


참고 자료
모두를 위한 컴퓨터 과학 (CS50 2019)

0개의 댓글