2진법, 정보의 표현, 알고리즘

Jake·2023년 5월 2일
0

CS50

목록 보기
1/3
post-thumbnail

아래 내용은 David J. Malan (데이비드 J. 말란) 교수님의

을 참고하였습니다

학습 목표

컴퓨터 과학이 무엇인지 정의하고, 컴퓨터가 정보를 표현하는 방법에 대해 설명할 수 있습니다.

핵심 단어

  • 컴퓨터 과학
  • 2진법
  • 비트
  • 바이트

2진법

정보를 처리하는 과정

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

문제해결은 입력을 전달받아 출력을 만들어내는 과정입니다.

모든 정보는 컴퓨터 내에서 0 과 1 로 이루어집니다. → 글자, 영상, 사진을 0,1 만으로 처리하고 표현할 수 있습니다.

스위치 on off 개념을 사용합니다.

하나의 스위치는 1bit 이며 0, 1 을 표현할 수 있으며 8bit = 1byte 입니다.

트랜지스터 - 물리적으로 정보를 표현, 값을 저장하며 아주 작은 스위치이며 컴퓨터는 이를 수천, 수억개를 가지고 있습니다. - 물리적인 저장공간.

RAM - random access memory

비트

비트는 binary digit의 줄임말로 1비트는 0,1 이 두가지의 값만 저장할 수 있습니다. 컴퓨터 내부에서 물리적으로 표현될 때는, 켜고 끌 수 있는 스위치라 생각할 수 있습니다. 바이트(byte)는 8개의 비트가 모여 만들어 진것이며 256개의 서로 다른 바이트가 존재할 수 있습니다.(2^8=256이므로)

학습 목표

컴퓨터가 문자, 사진, 영상, 음악 등 다양한 정보를 처리하는 방식을 설명할 수 있습니다.

핵심 단어

  • ASCII
  • 유니코드
  • RGB

정보의 표현

ASCII code - 문자를 숫자로 표현하게 해주는 일종의 약속

이모티콘도 결국 숫자의 조합

😂 → 128514 (10진법) 의 정보를 전달하면 이런 이모티콘을 표현합니다

(숫자로 이모티콘을 표현한다는 사실이 매우 흥미로웠습니다)

이모지를 표현할 때 점으로 표현을 하게 되는데 이러한 점들은 3가지 색(red, green, blue) 의 조합으로 표현을 하며 소리를 표현할때에도 결국 0, 1로 표현을 하는 것 입니다. 이는 픽셀 단위로 각각의 픽셀은 세 가지 색을 서로 다른 비율로 조합하여 특정한 색을갖게되는 것입니다.

알고리즘

학습 목표

  1. 우리가 일상 생활에서 하는 일들을 컴퓨터가 이해할 수 있는 알고리즘으로 표현할 수 있습니다.
  2. 효율적인 알고리즘에 대해 설명할 수 있습니다.

핵심 단어

  • 알고리즘
  • 의사코드

알고리즘이란 일정 규칙들의 순차적인 나열을 뜻하며 이는 입력값을 출력값의 형태로 바꾸기 위해 어떻게 하면 효율적인 명령들이 수행되는지에 대한 것입니다.

말란교수님은 아주 두꺼운 전화번호부 책을 예시로 들었습니다.

  1. 처음부터 끝까지 다 읽기
  2. 매번 2분할로 찾아가기

만약 전화번호부가 100페이지에서 200페이지가 되었다고 가정해본다면 한장씩 넘기는 알고리즘은 100페이지를 넘겨야 하지만, 절반씩 줄어드는 두 번째 알고리즘은 단 1번만의 절차만 더 수행하면 됩니다. 왜냐하면 단 1번의 절차만드로 100페이지를 버릴 수 있기 때문입니다.

첫 번째 알고리즘은 한 장을 넘기는 규칙적인 순서적 나열이었고,

두 번째 알고리즘은 반을 줄이고, 다음 반을 줄이는 규칙의 순서적 나열이었습니다.

즉 효율적인 알고리즘은 검색 범위를 줄이는 것이 하나의 방법입니다

0개의 댓글