이 글은 boostcourse의 모두를 위한 컴퓨터 과학 (CS50 2019) - David J. Malan 강의를 수강하며 정리한 글입니다.
2진법
컴퓨터 과학이란?
문제 해결(입력을 받아서 출력을 만드는 과정)에 대한 학문이다. 따라서 입력과 출력을 표현하기 위한 표준이 필요하다.
2진법
10진법이란 우리가 일상 속에서 사용하는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 기호를 말한다. 컴퓨터에서는 이 10개의 숫자들이 존재하지 않고 0과 1로만 데이터를 표현한다. 이를 2진법이라고 한다.
어떻게 0과 1로만 글자와 사진, 영상 등의 데이터를 저장할 수 있을까?
우리는 123을 백이십삼이라고 읽는다. 이 과정이 자연스러운 이유는 각 자리를 10의 거듭제곱으로 표현하기로 약속했기 때문이다. 따라서 2진법에서는 각 자리를 2의 거듭제곱으로 표현할 수 있다.
2진법은 전기로 작동하는 컴퓨터에게 아주 적합한 방식이다. 컴퓨터에는 많은 스위치(트렌지스터)가 있는데, on/off 상태를 0과 1로 표현할 수 있다. 컴퓨터는 2진법의 각 자릿수를 표현하는 단위를 비트(bit)라고 한다.
비트와 비트열
정보를 저장하고 연산 작업을 하기 위해 컴퓨터는 비트라는 단위를 사용한다. 비트는 이진 숫자라는 뜻의 "binary digit"의 줄임말로, 0과 1 두 개의 값만 가질 수 있다. 여러 비트를 통해서 0과 1만으로도 많은 양의 정보를 저장할 수 있으며, 저장되어 있는 데이터를 수정하기 위해 비트에 수학적 연산을 수행할 수 있다.
하나의 비트로는 많은 양의 데이터를 나타내기 어려우므로 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트열을 사용한다. 바이트(byte)는 여덟 개의 비트가 모인 것이다. 비트 하나는 0과 1로 표현되므로 2^8 = 256 개의 서로 다른 바이트가 존재할 수 있다. 바이트가 모이면 더 큰 단위가 될 수 있다.
하나의 비트로는 참과 거짓을 표현할 수 있고 하나의 바이트로 알파벳 하나를 표시할 수 있다.
'Etc > CS' 카테고리의 다른 글
[HTTPS] 인증 및 보안 (feat. 공개키와 대칭키) (0) | 2022.09.20 |
---|---|
REST API (0) | 2022.08.02 |
SPA(Single Page Application)를 만드는 기술: AJAX (0) | 2022.08.02 |
[네트워크] 웹 애플리케이션 작동 원리 - 네트워크를 만드는 기술 (0) | 2022.08.02 |
Git (0) | 2022.07.01 |
댓글