[컴퓨터 구조] 데이터
이 글은 패스트캠퍼스의 현실 세상의 컴퓨터공학 지식 with 30가지 실무 시나리오 초격차 패키지 Online.를 보고 공부한 내용을 정리한 글입니다.
데이터
컴퓨터는 0과 1만을 이해
한다.
숫자를 0과 1로 표현하기 → 2진수
음수를 0과 1로 표현하기 → 2의 보수
모든 소수를 0과 1로 표현하는 방법 → 부동 소수점
모든 문자를 0과 1로 표현하는 방법 → 문자 집합 & 인코딩
이진법
이진법은 0과 1로만 이루어진 숫자의 표현 체계이다.
1을 넘어가는 시점에서 자리올림
0000 -> 0001 -> 0010 -> 0011 -> 0100 ->…
십육진법
2진수는 사람이 보기엔 너무 길어서 한눈에 보기 힘듬.
그렇다고 10진수는 2진수와의 변환이 자유롭지 않음.
16진수는 2의 4승
이다. 그러므로 10진수 보다 2진수와의 상호변환이 자유롭다.
1~9
과 A~F
로 16진수 표현.
A부터 F까지는 다음과 같다.
A : 10
B : 11
C : 12
D : 13
E : 14
F : 15
15를 넘어가는 시점에 자리올림
2의 보수법
0과 1만으로 음수를 표현하는 방법
컴퓨터 내부에서는 -
기호 또한 사용할 수 없기 때문에 2의 보수법을 이용한다.
2의 보수란 어떠한 이진수 n
이 있을 때 주어진 n보다 한 자리 높고
가장 높은 자리가 1
이며 나머지가 0
인 수에서 n 을빼서 얻은 수
가 2의 보수
더 쉬운방법은
모든 0과 1을 뒤집
은 뒤 1을 더한 값
이때 컴퓨터는 주어진 값이 음수인지 아닌지를 어떻게 구별할까?
에를 들어 음수 0101과 양수 0101을 구분은 어떻게 할까?
이는 CPU 내부의 정보, 플래그(flag)
를 이용한다.
음수 플래그가 세팅되어 있을 경우 2보수가 적용된 음수
로 생각하고 아니라면 양수로 생각한다.
부동 소수점 floating point
컴퓨터가 소수를 표현하는 방법
부동 소수점은 지수부
와 가수부
로 나뉘어
지수부 X 가수부로 표현된다.
123.45 이라는 숫자는 1.2345 X 10^2
로 표현할 수 있음.
여기서 1.2345
가 가수
10^2
가 지수이다.
컴퓨터 내부의 소수 표현방식
이진수를 m X 2^n
꼴로 나타내고, 가수 부분은 1.XXX
꼴을 띄고 있음.
111111.000001 이진수를 m X 2^n 꼴로 나타낸다고 가정했을 때,
1.11111000001 X 2 ^ 5
로 표현 가능.
컴퓨터가 소수를 저장하는 방식은 아래와 같다.
부호 부분
에서 음수인지 양수인지를 판별
하기 위해 값을 저장하고
지수 부분
에서 지수 값
이 저장된다.
지수 부분은 저장될 때 바이어스(bias)값이 더해져 저장
된다.
바이어스 : 2^(k - 1) -1 (k는 지수부분의 bit).
가수 부분
에서는 소수점 뒷자리의 소수 부분들이 저장된다.
이때 가수 부분은 정해진 공간
을 가지고 있다.
그렇기 때문에 소수점의 뒷자리는 버려지는 경우가 많
으므로
계산에 오차
가 생길 수 있다.
문자 인코딩과 디코딩
문자 집합
: 표현 가능한 문자들의 집합
문자 인코딩
: 문자를 0과 1로 이루어진 문자 코드로 변환
문자 디코딩
: 0과 1로 이루어진 문자 코드를 문자로 변환
아스키 코드 ASCII
0부터 127까지
의 번호에 1대1 대응으로 문자와 숫자를 매칭
시켜 놓음.
즉 대응이 곧 인코딩과 디코딩
역할을 둘 다 할 수 있음.
유니코드 문자 집합
[유니코드 사이트] 유니코드 사이트
아스키 코드는 여러 국가의 언어를 표현할 수 없음.
유니코드는 아스키 코드의 문제를 해결할 수 있음.
유니코드는 대부분 언어
, 특수 문자
, 이모티콘
, 화살표
까지 모두 지원
유니코드는 U
+ 4자리 16진수
로 이루어져 있으며
4자리 16진수
는 문자열로 고유하게 부여된 고유의 수
임.
이 4자리 16진수
를 코드포인트
라고 하며 코드포인트
를 인코딩하는 방식에 따라
utf-8
, utf-16
, utf-32
등이 있음
댓글남기기