티스토리 뷰

TIL/CS

데이터

YEIKKI 2023. 2. 5. 19:18

컴퓨터가 이해하는 가장 작은 정보단위 : 비트(bit)

 

비트: 0과 1을 표현하는 가장 작은 정보 단위

 

n비트로 2ⁿ 가지의 정보 표현 가능하다

 

현재 비트보다 더 큰 단위를 사용함(바이트, 킬로바이트, 메가바이트,기가바이트,테라바이트 등)

출처:https://news.skhynix.co.kr/post/how-data-is-stored(SK하이닉스news)

1바이트(1byte)  8비트(bit)
1킬로바이트(1kb) 1000바이트(1,000byte)
1메가바이트(1MB) 1,000킬로바이트(1,000kB)
1기가바이트(1GB) 1,000메가바이트(1,000MB)
1테라바이트(1TB) 1,000기가바이트(1,000GB)

예전에는 단위가 작아서 혼용해서 사용했지만 지금 사용하는 정보단위가 크기때문에 정확하게 나뉘어서 1024개씩 묶은 단위는 kiB,MiB,GiB... 가 따로 있다.


워드(word)

CPU가 한번에 처리할수 있는 정보의 크기 단위 

예를 들어서 CPU가 한번에 처리할수있는 양이 32bit이면 1word =32bit입니다

 

파생된 단위

half-word: 워드의 절반크기

full-word: 워드 크기

double-word: 워드의 두배 크기


이진법(binary)

0과 1로 수를 표현하는 방법

숫자가 1을 넘어가는 시점에 자리올림

우리가 일상적으로 사용하는 진법은 숫자가 9를 넘어갈 때 자리올림하는 십진법을 사용함

         십진수         이진수
       1             1
       2           10
      3           11
      4         100
      5         101
      6        110
      7       111
      8     1000

 

이진수 8를 표기하는 방법 : 1000(2) / ob1000

 

 

0과 1로 음수 표현하기 : 2의 보수 

정의: 어떤수를 그보다 큰 2ⁿ 에서 뺸 값

 

쉽게 이해하기위해서 모든 0과 1을 뒤집고 1더한 값

 

아래그림은 왼쪽은 음수로 표현하고 오른쪽은 다시 원래 값으로 돌아가는걸 보여줌

 

출처:혼자 공부하는 컴퓨터 구조와 운영체제 (한빛미디어)

 

1011(2)음수를 표현하기 위한 0101(2) 과 십진수 5를 표현한 0101(2)은 똑같이 생겼는데 어떻게 구분하나요?

 

-겉모습 보면 구분이 안되지만 CPU내부에는 플래그(flag)레지스터가 있는데 이것이 양수/음수를 표기해줌

모든 숫자가 양수/음수를 표식을 들고 다니기때문에 헷갈릴 일은 없다라고 보면됨.


16진법

이진법으로는 숫자의 길이가 너무 길어진다: 10진수 32== 2진수 100000

이진법을 16진법으로 변환하기 쉽기때문에 컴퓨터의 데이터를 표현할때 16진법도 많이 사용

수가 15를 넘어가는 시점에 자리올림

16진법에 A~F이해하기 쉬운방법

손을 가지고 이해를 해볼텐데 주먹을 쥔 상태를 A, 그리고 손가락하나만 폈으면 B, 손가락 2개 C, 손가락 3개 D,

손가락 4개 E, 손가락 5개면 F 라고 생각하시면 이해하기 편하다!

 

16진법 15표기  15(16) 수학적 표기 방식

                       0x15   코드상 표기 방식

코드에 많이 사용


이진수 -> 16진수 변환 

 

16진수 -> 이진수


문자 집합과 인코딩

문자집합: 컴퓨터가 이해할 수있는 문자의 모음

 

인코딩 (encoding)

코드화하는 과정

문자를 0과1를 이루어진 문자코드로 변환하는 과정

 

디코딩(decoding)

코드를 해석하는 과정

0과1를 표현된 문자 코드로 문자로 변환하는 과정 

 

출처:혼자 공부하는 컴퓨터구조와 운영체제(한빛미디어)


아스키코드  (2의 7승 = 128개)

초창기 문자 집합 중 하나 

알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자 + 한글을 포함한 다른 언어 문자, 다양한 특수 문자표현 불가

7비트로 하나의 문자 표현

 실제로 8비트중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)

-code point= 문자에 부여된 값

 

패리티 비트(parity bit): 전송 도중 신호가 변질 된것을 검출

 


한글 인코딩: 완성형 VS 조합형 인코딩

알파벳을 이어 쓰면 단어가 되는 영어가 있지만 한글은  초성 ,중성, 종성의 조합으로 이루어진 한글 

한글을 위한 인코딩이 방식이 필요함 그래서 탄생하게 된 완성형 과 조합형 인코딩 방식

 

완성형 :  김 + 영 + 식 

조합형:  ㄱ + ㅣ+ ㅁ+ ㅇ+ㅕ+ㅇ+ㅅ+ㅣ+ㄱ 

 


EUC-KR

완성형 인코딩

글자 하나 하나에 2바이트 크기의 코드 부여 

2바이트== 16비트 == 4자리 16진수로 표현 

2300여개의 한글 표현가능하지만 여전히 한글을 표현하기에는 부족한 수

언어별 인코딩 방식을 모두 이해해야한다.

 

https://dencode.com/

핸드폰 명의, 은행 ,의료보험, 국가 장학금 까지 온라인상에서 EUC-KR 표현하지못하는 특이한 이름을 가지고 있어서 불편함을 겪는 사람들도 있습니다 .


EUC-KR을 단점을 보완한 유니코드 문자 집합과 UTF-8

유니코드

통일된 문자 집합

한글, 영어 , 화살표와 같은 특수 문자, 심지어 이모티콘까지

현대 문자 표현에 있어 매우 중요함

 

유니코드의 인코딩 방식

utf-8, utf-16,utf-32

https://unicode-table.com/kr/ 을 통해서 유니코드 확인할 수있다.


UTF-8(Unicode Transformation Format) ->유니코드 인코딩 방법

가변길이 인코딩: 인코딩 결과 1바이트~4바이트

인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값에 따라 다름

 

출처:혼자 공부하는 컴퓨터구조와 운영체제(한빛미디어)

 

출처:혼자 공부하는 컴퓨터구조와 운영체제(한빛미디어)

 

출처:https://onlineutf8tools.com/convert-utf8-to-binary


 

출처: 혼자 공부하는 컴퓨터 구조와 운영체제 ,한빛미디어, 강민철

'TIL > CS' 카테고리의 다른 글

JSON이란?  (0) 2023.07.28
CPU 작동 원리  (0) 2023.02.10
컴퓨터 구조  (0) 2023.02.03