본문 바로가기

CS

2진법, 정보의 표현

※ 우선 여기에서는 컴퓨터에서 인식되는 2진법과 각 이미지나 문자를 어떻게 표현하는지 알아볼 것이다.

◎ 컴퓨터 과학

     - 컴퓨터 과학은 어떠한 입력(input)을 전달받아 출력(output)을 만들어내는 과정이다.

     - 이러한 입력과 출력을 표현하기 위해선 우선 모두가 동의하는 약속(표준)이 필요하다.

 

◎ 2진법

     - 우리가 일반적으로 사용하는 0,1,2,3,4,5,6,7,8,9 와 같이 표현하는 것은 10진법이다.

     - 그러나 컴퓨터는 0과 1로만 데이터를 표현하고 이를 2진법이라고 한다.

     - 그런데 2진법으로 어떻게 글자, 사진, 영상, 소리등을 저장할 수 있을까??

  네번째 자리 세번째 자리 두번째 자리 첫번째 자리
10진법 10³ = 1000 10² = 100 10¹ = 10 1
2진법 2³ = 8 2² = 4 2¹ = 2 1

 

◎ 비트

     - 'binary digit'의 줄임말로 여기서 binary는 ‘이진수의’ 라는 뜻이다. 이진수란 두 개의 숫자로 구성된 숫자 체계를 말함.

     - 컴퓨터에서 사용하는 가장 작은 정보 단위.

     - 컴퓨터는 많은 수의 비트를 활용하여 정보를 표현을 한다.

     - 1byte = 8bit

     - 컴퓨터 속에는 트랜지스터라는 아주 작은 스위치가 있고, 이것을 on/off를 통해 0과 1을 표현하여 정보를 표현하고 값을 저장한다.

 

◎ 비트열

     - 비트 한 개로는 많은 양의 데이터를 나타내기에는 부족하다. 따라서 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트열을 사용한다.

     - 하나의 바이트에 여덟 개의 비트가 있고, 비트 하나는 0과 1로 표현될 수 있기 때문에 2^8= 256 개의 서로 다른 바이트가 존재할 수 있다.

     - 바이트가 모이면 더 큰 단위가 될 수 있다. 킬로바이트,메가바이트,기가바이트,테라바이트,페타바이트,엑사바이트와 같은 큰 단위도 존재.

단 위 정 의 저장공간의 크기
비트(bit) 0 or 1 예 / 아니오
바이트(byte) 8비트 알파벳 한 문자
킬로바이트(KB) 1,000 바이트 몇 개의 문단
메가바이트(MB) 1,000 킬로바이트 1분 가량의 MP3 노래
기가바이트(GB) 1,000 메가바이트 30분 가량의 HD영화
테라바이트(TB) 1,000 기가바이트 영화 수백편

 

◎ 문자의 표현

     - 앞서 말한 내용에 컴퓨터는 2진법 즉 숫자로만 인식을 받을 수가 있다.

     - 따라서 문자를 숫자로 표현할 수 있도록 정해진 약속(표준)이 있다.

     - 그중 하나인 ASCII(아스키코드)는  총 128개의 부호로 정의되어 있다.(A는 10진수를 65, B는 66으로 표현)

     - 그러나 아스키코드는 이모지와 같은 문자를 표현할 수 없어서 유니코드를 사용한다.(훨씬 많은 0과 1의 패턴을 표현할 수 있음)

     - 한가지 예로 😂(기쁨의 눈물) 이런 이모티콘까지 표현할 수 있게 해주었다.

     - 이 이모티콘은 10진법으로 128,514이다. 2진법으로는 11111011000000010 이다.

     - 😂(기쁨의 눈물) 이모티콘을 친구에게 보내면 11111011000000010을 보낸 것이다.

 

◎ 그림, 영상, 음악의 표현

     - 문자와 같이 그림도 역시 숫자로 표현할 수 있다.

     - 그림은 수많은 작은 점들이 모인 것이고 이러한 작은 점을 픽셀이라고 부른다.
     - 이 픽셀은 RGB(빨간색, 초록색, 파란색)을 이용해 서로 다른 비율로 조합하여 색을 나타낸다.
     - 예를 들어 빨간색 72, 초록색 72, 파란색 33을 섞게 되면 노란색이 되는 것과 같은 방식이다.

     - 따라서 모든 점들은 3개의 값으로 저장됨(RGB(Red, Green, Blue))
     - 영상 또한 수많은 그림을 빠르게 연속적으로 이어 붙여놓은 것이기 때문에 숫자로 표현이 가능하다.

     - 음악도 마찬가지로 각 음표를 숫자로 표현할 수 있다.

'CS' 카테고리의 다른 글

배열과 해시테이블(Array and HashTable)  (0) 2021.07.23
자료구조 기초  (0) 2021.06.17