2진법

  • 컴퓨터 과학 = 문제를 해결하는 과정
  • input -> computer science => output
  • 컴퓨터에게 입력과 출력을 어떻게 표현해야할까? => 2진법

2진법은 어떻게 작동하는가?

  • 사람들은 보통 10개의 손가락으로 10진법을 사용한다.
  • 컴퓨터는 0과 1로 이미지, 영상등을 저장한다.
  • 10진법이 10의 거듭제곱으로 숫자를 표기하듯이 2진법은 2의 거듭제곱을 사용한다.
  • 0과 1을 비트라고 한다.
  • 기계는 전기가 유일한 입력이므로 전기가 흐르는것과 흐르지 않는 것으로 나뉜다. => 비트
  • 8비트는 1바이트
  • 트랜지스터는 컴퓨터 속에 있는 아주 작은 스위치다. 이를 물리적으로 이용해서 정보를 표현한다.

정보의 표현

  • 컴퓨터는 2진법을 이용해서 어떻게 문자나 글자등을 어떻게 표현하는가?

문자

  • 과거에 대문자 A를 65로 표현했다. (1000001)
  • ASCII: 정보교환을 위한 미국 표준 코드, 알파벳과 문장부호를 숫자로 규정한다.
  • ASCII는 미국중심이라 미국영어에 편중되어 있다.
  • 유니코드: ASCII의 상위 집합, 32비트까지 사용한다. 다른 언어와 이모지도 표현 가능하다.

사진, 영상

  • 사진은 작은 점으로 이루어져 있다. 컴퓨터는 각 점들을 RGB를 이용해 표현한다.
  • 영상은 같은 파일에 저장된 여러장의 사진이다.

알고리즘

  • 입력으로부터 출력을 어떻게 얻을 수 있을까? -> 알고리즘을 통해서
  • 문제를 해결하는 단계적인 방법

스마트폰은 알파벳순으로 정렬된 이름에서 어떻게 이름을 검색할까?

  1. 한장씩 페이지를 넘겨가며 이름을 찾는다.(매우느림)
  2. 두장씩 페이지를 넘겨가며 찾는다. (2배 빠르지만 지나칠 수도 있다.)
  3. 적당히 중간을 펴서 이름 순서를 비교하고 반쪽을 버린다.(훨씬 빠름, 분할 정복)

어떤 알고리즘이 더 좋은지는 어떻게 알수 있는가?

  • 문제의 크기, 문제 해결에 걸린시간

의사코드

알고리즘을 코드 형식으로 나타낸 구문

  • 함수: 컴퓨터에게 뭘 할지 알려주는 동사
  • 조건: 여러 선택지중 하나르 ㄹ고르는 것
  • 불리언 표현: 예 or 아니오 질문
  • 루프: 계속 반복하는 순환

출처: 부스트코스 모두의 컴퓨터과학

'CS' 카테고리의 다른 글

[모두의 컴퓨터과학] 메모리  (0) 2021.11.17
[모두의 컴퓨터과학] 알고리즘  (0) 2021.11.15
[모두의 컴퓨터과학] 배열  (0) 2021.11.14
[모두의 컴퓨터과학] C언어 기초  (0) 2021.11.14

+ Recent posts