CS 기초/컴퓨팅 사고

[CS50] 2진법

담크 2021. 7. 24. 23:40

CS는 Computer Science의 약자로 직역하면 컴퓨터 과학이라는 뜻을 가지고 있습니다.

그렇다면 컴퓨터 과학을 왜 알아야 할까요??

 

본 강의에 의하면 컴퓨터 과학은 단지 문제를 해결하는 과정이라고 합니다.

이게 무슨 말인가 해서 봤더니 

문제 해결이란 Input을 받아 output을 만들어내는 과정이라고 하는데 이 중간에 있는 과정이 컴퓨터 과학이라고 설명합니다.

Process에 해당하는 부분이 CS라고 생각하시면 됩니다.

이러한 Input, output을 표현하기 위해서는 모든 사람이 동의할만한 약속(표준)이 필요합니다.

따라서 CS의 첫 번째 개념인 2진법은 어떻게 표현하는지에 대한 표현 방법을 말합니다.

 

 

 

2진법

우리가 흔히 사용하는 숫자인 0, 1, 2, ... , 7, 8, 9 이렇게 총 10개의 기호로 표현되는 것이 10진법인데요

컴퓨터는 사람과 다르게 0과 1뿐인 2진법으로만 데이터를 표현할 수 있습니다.

그런데 어떻게 컴퓨터는 0과 1만으로 숫자를 세는 것뿐 아니라 이미지, 오디오, 비디오 파일 등을 저장할 수 있을까요??

 

만약 아래와 같이 써있다고 생각해봅시다.

여러분들은 어떻게 읽으셨나요? 다르게 읽으신 분들도 있겠지만 우리는 보통 '백이십삼'이라고 읽을 겁니다.

우리는 이러한 표현에 대한 약속을 해놨기 때문에 1을 백의 자리, 2를 십의 자리, 3을 일의 자리로 보는 과정을 당연하게 여깁니다. 이는 자릿수를 10의 거듭제곱으로 표현했다는 것을 의미합니다.

 

이와 마찬가지로 2진법은 각 자릿수가 2의 거듭제곱을 사용해 수를 나타냅니다.

즉 전기를 켜고 끄는 방식으로 작동하는 컴퓨터에게는 적합한 방법으로 작용합니다. (컴퓨터에는 굉장히 많은 수의 트랜지스터가 있고 on/off 방식으로 0과 1을 표현할 수 있습니다.)

 

이렇게 2진법에서 하나의 자릿수를 표현하는 단위를 비트(bit)라고 합니다.

 

비트란?

정보를 저장하고 연산을 수행하기 위해 컴퓨터가 사용하는 측정 단위로 '이진 숫자'라는 뜻의 binary digit의 줄임말이며 0과 1, 이 두 가지 값만 사용할 수 있습니다.

또한 많은 수의 비트들을 활용하여 정보를 저장하고 표현할 수 있습니다.(즉 비트에 수학적 연산을 수행할 수 있다.)

 

비트열이란?

비트 한 개로는 많은 양의 데이터를 나타내기에 턱없이 부족합니다. 그래서 여러 숫자 조합을 컴퓨터에 나타내기 위해서 비트열을 사용합니다.

바이트(byte)는 8개의 비트가 모여서 만들어진 것입니다. 1개의 바이트에 8개의 비트가 있고, 비트 1개는 0과 1로 표현될 수 있기 때문에 2^8=256개의 서로 다른 바이트가 존재할 수 있습니다.

이같이 더욱더 많은 양의 데이터를 나타내는 다양한 데이터 표현이 있는데

이렇게 표현됩니다.

 

 

 

 


출처

본 내용은 CS50의 2019년 강의를 듣고 작성했습니다. (개념이 어느 정도 정리되면 최신강의도 다시 듣고 수정할 내용 있으면 수정하겠습니다.)

 

강의 자료는 EdX에서 무료로 사용할 수 있고 boostcourse에서 한글 강의로도 들을 수 있습니다.

'CS 기초 > 컴퓨팅 사고' 카테고리의 다른 글

[CS50] 스크래치 사용해보기  (0) 2021.07.27
[CS50] 알고리즘  (4) 2021.07.26
[CS50] 정보의 표현  (0) 2021.07.25