CS50_컴퓨팅 사고_(1)[이진법, 정보의 표현, 알고리즘]

김두미·2022년 6월 11일
0

1) 2진법

컴퓨터는 2진법(0과 1) 으로만 이루어져있다.
컴퓨터에는 트렌지스터라는 아주 작은 스위치가 있다.
이를 끄고 켜서 숫자를 표현한다.

각각을 bit라고 하고 8bit를 1byte라고한다.

많은 bit를 이용해 정보를 표현한다.

13 -> 8 + 4 + 1 과 같이 2의 지수승으로 표현한다.


2) 정보의 표현

글자는 어떻게 이진수로 표현할수있을까?

ASCII : 정보 교환을 위한 미국 표준 코드
ASCII를 이용해 글자를 10진수의 숫자로 바꾸고 이를 이진수로 표현한다.

예) A : 65

ASCII가 부족해서 더 많은 비트를 사용한 것이 유니코드다.
유니코드 : ASCII의 상위 집합

😂 이 이모지를 위한 유니코드는 128514이다.
이진수로 바꾸면 11111011000000010이다.
즉 ,이 이모티콘을 누군가에게 보내면 이 이진수가 전송되는 것이다.

그림이나 음악과 같은 경우도 결국 0과 1으로 표현이 된다.
각각이 작은 점(픽셀)으로 표현되기 때문이다.
그림은 경우 RGB를 적절히 잘 조절하여 모든 색을 표현한다.
한 픽셀에 RGB의 정도를 3개의 값으로 저장한다.
얼마의 RED, 얼마의 Green, 얼마의 Blue를 갖고있는지 저장하는 것이다.

0,1을 이용해 2진수를 나타내고
이를 이용해 10진수를 나타내고
10진수를 이용해 화면 상의 글자나 색상을 나타낸다.

결국, 0과 1이다.


3) 알고리즘

알고리즘이란 문제를 해결하는 단계적 방법을 의미한다.

1024page의 전화번호부에서 Mike를 찾는 방법에는 무엇이 있을까?

  1. 1p ~ 1024p까지 전부 찾는다.
  2. 1p ~ 1024p까지 2p간격으로 전부 찾는다.
  3. 절반 정도 page를 펼처 mike가 존재하지 않는 절반을 찢어 버린다.

1번 방법은 O(n)
2번 방법은 O(n/2)
3번 방법은 O(logn)의 시간이 소요된다.

이를 간단하에 나타내는 것을
의사코드라고 한다.

여기에는 function, condition(if, else if ,else), boolean expressions(True, False), loops등 다양한 요소들이 존재한다.

profile
개발자를 꿈꾸는 대학생

0개의 댓글