1. 컴퓨팅 사고 - 2진법, 정보의 표현
*POSTECH 청년 AI · Big Data 아카데미(https://pabi.smartlearn.io/)의
'Computational Thinking (컴퓨팅 사고) Ⅰ' 코스 강의가 9월 30일까지었고 12월에 다시 개강한다고 해서, 그동안은 다른 강의를 듣기로 했습니다...
*boostcourse의 '모두를 위한 컴퓨터 과학 (CS50 2019)' 코스 강의를 듣고 정리한 글입니다.
모든 이미지의 출처는 boostcourse의 해당 코스에 있습니다.
1. 2진법
1) '정보 자체의 표현 방법' 중 하나
2) 컴퓨터의 언어가 2진법인데, 0과 1로만 말함
-> 컴퓨터에서 실제로 작동하는 방법?
: 각 자리수를 2의 거듭제곱 형식으로 표현.
우리가 아는 10진법은 일의 자리에서 0~9까지 채우면 십의 자리로 넘어가지만,
2진법은 0~1까지 채우면 10의 자리로 넘어감
(예시: 우리가 아는 숫자 1,2는 각각 '001', '010'으로 표시됨)

3) Bit(비트)
- 2진 숫자를 의미하며, 0 또는 1을 뜻함
- 2진법과도 잘 맞음: 전기가 우리의 유일한 입력이라면, '전기 있음', '전기 없음' 두 가지만이 존재할 것
이를 표현하기 위해서는 '켜짐', '꺼짐'을 나타내는 두 기호 1,0만 있으면 됨
- 하나의 비트로는 0 또는 1만 셀 수 있음
4) Byte(바이트)
- Bit보다 더 많이 0 또는 1을 표현하고 싶다면, Bit를 1개에서 8개로 늘림. 이 8Bit가 1Byte.
: 8비트로는 8개의 0 또는 1을 표현할 수 있어, Bit보다 더욱 효과적인 단위
(예시: 숫자 50을 2진법으로 1 Byte까지 나타낸다면, 다음 사진과 같이 00110010이 됨)

2. 정보의 표현
1) 숫자가 아닌 문자 A와 같은 것들은 어떻게 컴퓨터 언어로 표현할까?
- 숫자로 표현할 수 있음. 다같이 어떻게 표현할 지 표준을 정함. A의 경우 65로 정함.
2) 문자 외의 문장 부호는 어떻게 컴퓨터 언어로 표현할까?
- ASCII 체계 (숫자 문자를 1 Byte(=8 Bit)까지 표현 정보 교환을 위한 미국 표준 코드)
ㄴ하지만 이는 당시 매우 미국중심적이어서, 미국식 언어에 편향되어 있었음. (ASCII 약어 안에도 '미국' 단어가 있음)
- 다양한 문자들을 표현하기에 8개의 비트들은 충분하지 않았음..
3) 우리가 사용하는 이모티콘(😀 등..)은 어떻게 컴퓨터 언어로 표현할까?
- 이모티콘은 이미지처럼 보이지만, 알파벳으로 이루어진 기호들. 그래서 이들도 키보드를 통해 입력함
-> 이 문자들을 나타내는 0과 1의 패턴: 유니코드 (ASCII의 상위 집합과 같음) - 32비트까지 정보 표현 가능
- 표현 예시 (사진 참고)



4) 그렇다면 이모티콘(😀 등..)에 쓰인 색들은 어떻게 컴퓨터 언어로 표현할까?
- RGB 체계(빨강, 초록, 파랑) : 빨강, 초록, 파랑만 있으면 무슨 색이든 만들 수 있음. 색들도 RGB의 유무를 0과 1로 나타내는 것
- 그래픽 프로그램은 같은 10진수를 보라, 초록, 파랑의 양으로 받아들임. 1개의 픽셀(점)을 저장하려면 3비트가 필요.
-> 예시: 72 73 33을 문자로 받아들이면 " h i ! "지만, 그래픽 프로그램의 경우 RGB 색상의 양이 섞여서 노란색이 나타남

*총정리
0과 1을 사용해서 2진수를 나타내고, 그걸로 10진수를 나타내고,
10진수를 사용하여 화면 상의 글자, 색상을 나타내고 나아가 영상까지 만들어냄. 같은 원리로 음악도 숫자로 양자화 가능함.
-> 어떤 방법을 사용해서 정보를 나타내든 결국 0과 1들로 표현됨