처음부터 차근차근

[혼자 공부하는 컴퓨터 구조 + 운영체제] 데이터 본문

CS/컴퓨터구조

[혼자 공부하는 컴퓨터 구조 + 운영체제] 데이터

HangJu_95 2024. 5. 5. 23:34
728x90

0과 1로 숫자를 표현하는 방법

컴퓨터가 표현하는 정보 단위를 학습하고, 0과 1만으로 숫자를 표현하는 방법

정보 단위

컴퓨터는 0 또는 1밖에 이해하지 못한다.

  • 비트(bit) : 0과 1을 나타내는 가장 작은 정보 단위

Why? 전기를 통해 연산하는, 즉 전기를 켜고 끄는 방식으로 작동하는 컴퓨터에게 적합한 방법이다. 컴퓨터에는 굉장히 많은 스위치(Transistor)가 있고, on/off 상태를 통해 0과 1로 표현한다.

  • 바이트(byte) : 여덟 개의 비트를 묶은 단위로, 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트열을 사용.

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

  • 워드(word) : CPU가 한 번에 처리할 수 있는 데이터 크기를 의미. (Ex : x86 인텔 CPU -> 32비트를 한 번에 처리)

이진법

0과 1만으로 모든 숫자를 표현하는 방법
10진수와 2진수의 혼동을 예방하기 위해 이진수 끝에 아래첨자 (2)를 붙이거나, 이진수 앞에 0b를 붙인다.

이진수의 음수 표현

가장 널리 사용되는 방법은 2의 보수를 구해 값을 음수로 간주하는 방법이며, '어떤 수를 그보다 큰 2^n에서 뺀 값'을 의미한다.
예를 들어 11의 2의 보수는 11보다 큰 2^n, 즉 100에서 11을 뺀 01이 되는 것이다.

더 쉬운 방법으로 2의 보수를 구하는 방법은 '모든 0과 1을 뒤집고, 거기에 1을 더한 값'으로 이해하면 편리하다.

음수로써의 0101과 십진수 5를 표현하기 위한 양수로써의 0101은 똑같이 생겼는데, 어떻게 구분하느냐?
컴퓨터 내부에서 어떤 수를 다룰 떄는 이것이 양수인지 음수인지를 구분하기 위해 플래그를 사용해서 구분한다.

2의 보수 표현의 한계

0을 음수로 표현하기 어려우며, 2^n의 보수를 취하면 자기 자신이 되어버리는 문제점이 생긴다.

16진법

2진법으로 모든 숫자를 표현하다 보니 숫자의 길이가 너무 길어진다는 단점이 존재, 따라서 16진법을 사용한다.

16진법은 숫자 뒤에 아래첨자에 (16)을 붙이거나 숫자 앞에 0x를 붙여 사용한다.

  • 십육진법을 사용하는 주된 이유 중 하나는 이진수를 십육진수로, 십육진수를 이진수로 변환하기 쉽기 때문이다.

16진수 한 글자를 4비트의 이진수로 간주하면 계산이 편리해진다.코드상에서도 16진수를 많이 사용한다.

문자 집합과 인코딩

문자 집합 : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
문자 인코딩 : 문자를 0과 1로 변환하는 과정
문자 디코딩 : 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정

아스키코드(ASCII)

미국정보교환표준부호, 초창기 문자 집합 중 하나로, 영어 알파벳과 아라비아 문자, 일부 특수 문자를 포함한다.
아스키 문자 집합에 속한 문자들은 각각 7비트로 표현되는데, 총 128개의 문자를 표현할 수 있다. (마지막 1비트는 패리티 비트라고 불리는 오류 검출을 위해 사용되는 비트이다)

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

Unicode

대부분 나라의 문자, 특수문자, 화살표나 이모티콘까지도 코드로 표현할 수 있는 통일된 문자 집합을 의미한다.
유니코드 문자 집합에서는 아스키 코드와 같이 각 문자마다 고유한 값이 부여된다.
여기서 아스키코드와 다른 점은, 글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고, 이 값을 다양한 방법으로 인코딩한다.

UTF-8

unicode에서 가장 대중적으로 인코딩 방법이다.

 

UTF-8 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. UTF-8은 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로, 켄 톰프슨과 롭 파이크가 만들었다. UTF-8은 Universal Coded Character Set + Transformation Format – 8-bit의

ko.wikipedia.org

그렇다면 그림, 영상, 음악은??

그림 역시 숫자로 표현할 수 있는데 RGB로 표현한다. 각각의 pixel(화소)를 세 가지 색을 서로 다른 비율로 조합하여 특정한 색을 갖게 할 수 있다. 이를 통해 그림을 표현하고, 그림이 연속하게 나오면 영상이 된다.

 

참조

 

혼자 공부하는 컴퓨터 구조+운영체제 | 강민철 - 교보문고

혼자 공부하는 컴퓨터 구조+운영체제 | 혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서 42명의 베타리더 검증으로, ‘함께 만든’ 입문자 맞춤형 도서이 책은 독학으로 컴퓨터 구조와

product.kyobobook.co.kr

 

CS50: Introduction to Computer Science | Harvard University

An introduction to the intellectual enterprises of computer science and the art of programming.

pll.harvard.edu