2진법 학습자료.pdf

비트와 바이트 학습자료.pdf

들어가기 전에

컴퓨터 과학은 문제 해결에 대한 학문이다.

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

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/68a0e7d4-77f0-4dbf-9614-aa566e9e4f1f/_2020-12-10__11.34.38.png

이러한 입력과 출력을 표현하기 위해서는 모두가 동의할 **약속(표준)**이 필요하다. 따라서 컴퓨터 과학의가장 첫 번째 개념은 어떻게 표현하는지에 대한 표현 방법이다.

2진법

우리가 일상에서 사용하는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 총 10개의 기호로 표현하는 것이 10진법이다.

하지만 컴퓨터에는 이렇게 많은 숫자가 없다. 오직 01로만 데이터를 표현한다. 이처럼 0과 1로만 표현하는 것을 2진법이라고 한다. 컴퓨터는 신기하게도 오로지 0과 1만으로 숫자 뿐만 아니라 글자, 사진, 영상, 소리 등을 저장할 수 있다. 어떻게 이 것이 가능할까?

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6634e01c-ed93-46ad-b93b-84065a680728/_2020-12-10__11.40.51.png

우리는 이 숫자를 '백이십삽'으로 읽는다. 이는 1을 백의자리, 2를 십의자리, 3을 일의자리로 보기 때문이다. 이것을 표현하면 '1x100 + 2x10 + 3x1 = 123'이 된다. 우리 모두는 이런 과정을 아주 당연히 여긴다. 왜냐하면 우리 모두 이러한 표현에 대한 약속이 있기 때문이다. 우리는 이 약속에서 자리수를 10의 거듭제곱으로 표현했다.

2진법에서는 두 개의 숫자만 있으므로 각 자리수가 2의 거듭제곱을 의미한다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c0d0c52f-d46a-44de-9ef6-618a666db23e/_2020-12-10__11.47.11.png

그럼 이 방법으로 10진법의 3을 2진법으로 표현하면 어떻게 될까? 바로 11이다. 위 표에서 보면 2진법에서는 두 번째 자리는 2이다. 따라서 2진법에서 112¹ x 1 + 1 x 1 = 3이다. 마찬가지로 2진법에서 1002²x1 + 2¹x0 + 1x0 = 4이다.

이와 같은 2진법은 전기를 통해 연산하는, 즉 전기를 켜고 끄는 방식으로 작동하는 컴퓨터에게 적합한 방식이다. 컴퓨터에는 굉장히 많은 스위치(transister)가 있고 on/off 상태를 통해 0과 1을 표현한다.

숫자는 점점 더 커진다. 이렇게 더 큰 값들을 0과 1이란 숫자로 어떻게 표현할 수 있을까? 우리는 이를 **비트(bit)**라고 한다.(컴퓨터가 2진법에서 하나의 자릿수를 표현하는 단위)

비트

정보를 저장하고 연산을 수행하기 위해 컴퓨터는 **비트(bit)**라는 측정 단위를 쓴다. 비트는 이진 숫자라는 뜻을 가진 'binary digit'의 줄임말로, 0과 1, 두 가지 값만 가질 수 있는 측정 단위이다. 컴퓨터는 디지털 데이터를 많은 수의 비트를 활용하여 여러 비트들로 나타냄으로써 두 가지 값만을 가지고도 많은 양의 정보를 저장하고 표현할 수 있다. 또한 컴퓨터는 저장되어 있는 데이터를 수정하기 위해 비트에 수학적 연산을 수행할 수 있다

비트열

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4784cb6c-22af-4471-afff-c3b925264368/_2020-12-13__2.19.46.png

하나의 비트는 0과 1, 이 두 가지의 값만 저장할 수 있다. 비트가 컴퓨터 내부에서 물리적 표현이 될 때는 켜고 끌 수 있는 스위치라고 생각할 수 있다.(on=1, off=0) 하지만 비트 한 개는 많은 양의 데이터를 나타내기에 턱없이 부족하다. 그렇기 때문에 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트열을 사용한다.