기본 지식
비트: 0과 1을 표현하는 가장 작은 단위
-n비트로 2^n 가지의 정보를 표현 가능하다
-프로그램은 수많은 비트로 이루어져 있다
-하지만 실생활에서는 비트보다는 더 큰 단위를 사용한다
1byte == 8bit
1kB == 1000byte
1MB == 1000kB
1GB == 1000MB
1TB == 1000GB
워드 : CPU 가 한번에 처리할 수 있는 정보의 크기
문자 집합 : 컴퓨터가 이해할 수 있는 문자의 모음
인코딩 : 코드화 하는 과정, 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정 ( 사람-> 컴퓨터 )
디코딩 : 코드를 해성하는 과정, 0과 1로 표현된 문자 코드를 문자로 변환하는 과정 ( 컴퓨터 -> 사람)
0과 1로 숫자를 표현하는 방법
이진법
숫자가 1을 넘어가는 시점에 자리 올림
*우리가 일상적으로 사용하는 진법은 숫자가 9를 넘어가는 시점에 자리올림 한 십진법을 쓴다
코드에서 이진법을 표기하는 방법
ex) 이진수 8 표기 ->0b1000
0과 1을 음수로 표현하기 (2의 보수)
모든 0과 1을 뒤집고 1 더한 값으로 쉽게 구할 수 있다
ex) 이진수 11 표기 -> 00 -> 01
*겉모습만 보면 양수인 이진수랑 구분할 수 없지만 CPU에는 플래그 레지스터가 있어서 구분이 가능하다
(모든 숫자에는 CPU안에서 플래그 라는 표식을 가지고 다닌다)
십육진법
15를 넘어가는 시점에 자리올림
코드에서 십육진법을 표기하는 방법
ex) 십육진법 15 표기 -> 0x15
*이진수와 십육진수의 변환하는 방식이 십진수 보다 간편하여 십육진수를 변환하는 방법을 쓴다
0과 1로 문자를 표현하는 방법
아스키 코드
알파벳, 아라비아 숫자, 일부 특수문자 및 제어문자를 표현
7비트로 하나의 문자를 표현한다
(실제로는 8비트 이다 이 중 1비트는 오류 검출을 위해 사용되는 패리티비트이다)
아스키 코든 2^7개 즉, 128개의 문자를 표현할 수 있다
A는 65로 인코딩, a는 97로 인코딩
장점 : 간단한 인코딩
단점 : 다른 언어문자, 다양한 특수문자 표현 불가
유니 코드
통일된 문자 집합으로 현대 문자표현에 있어서 매우 중요한 위치이다
인코딩 방식은 utf-8, utf-16, utf-32 등 여러가지가 있다
대중적으로 utf-8 방식을 쓰는데 가변길이 인코딩으로 결과가 1바이트 ~ 4바이트가 될 수 있다
문제 해결 Tip
개발 중 올바르게 코드를 작성했는데 글자가 깨진다면 ?
인코딩이 호환되지 않는 것은 아닌지, 문자집합에 사용되지 않는 문자를 사용하고 있는 건 아닌지에 대해 생각해 볼 수 있다
'컴퓨터구조 + 운영체제' 카테고리의 다른 글
[컴퓨터구조 + 운영체제] 3일차 명령어 (0) | 2023.08.18 |
---|---|
[컴퓨터 구조 + 운영체제] 1일차 - 시작, 컴퓨터 구조의 큰 그림 (0) | 2023.08.10 |