2 분 소요

이 글은 패스트캠퍼스의 현실 세상의 컴퓨터공학 지식 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~9A~F로 16진수 표현.

A부터 F까지는 다음과 같다.
A : 10 B : 11 C : 12 D : 13 E : 14 F : 15

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

16

2의 보수법

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

컴퓨터 내부에서는 -기호 또한 사용할 수 없기 때문에 2의 보수법을 이용한다.

2의 보수란 어떠한 이진수 n이 있을 때 주어진 n보다 한 자리 높고 가장 높은 자리가 1이며 나머지가 0인 수에서 n 을빼서 얻은 수가 2의 보수

더 쉬운방법은
모든 0과 1을 뒤집은 뒤 1을 더한 값

2bosu

이때 컴퓨터는 주어진 값이 음수인지 아닌지를 어떻게 구별할까?
에를 들어 음수 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 로 표현 가능.

컴퓨터가 소수를 저장하는 방식은 아래와 같다. budong Untitled

부호 부분에서 음수인지 양수인지를 판별하기 위해 값을 저장하고

지수 부분에서 지수 값이 저장된다.
지수 부분은 저장될 때 바이어스(bias)값이 더해져 저장된다.
바이어스 : 2^(k - 1) -1 (k는 지수부분의 bit).

가수 부분에서는 소수점 뒷자리의 소수 부분들이 저장된다.
이때 가수 부분은 정해진 공간을 가지고 있다.
그렇기 때문에 소수점의 뒷자리는 버려지는 경우가 많으므로
계산에 오차가 생길 수 있다.

문자 인코딩과 디코딩

문자 집합 : 표현 가능한 문자들의 집합

문자 인코딩 : 문자를 0과 1로 이루어진 문자 코드로 변환

문자 디코딩 : 0과 1로 이루어진 문자 코드를 문자로 변환

아스키 코드 ASCII

0부터 127까지의 번호에 1대1 대응으로 문자와 숫자를 매칭 시켜 놓음.
대응이 곧 인코딩과 디코딩 역할을 둘 다 할 수 있음.

ascii

유니코드 문자 집합

[유니코드 사이트] 유니코드 사이트

아스키 코드는 여러 국가의 언어를 표현할 수 없음.
유니코드는 아스키 코드의 문제를 해결할 수 있음.

유니코드는 대부분 언어, 특수 문자, 이모티콘, 화살표까지 모두 지원

유니코드는 U + 4자리 16진수 로 이루어져 있으며 4자리 16진수는 문자열로 고유하게 부여된 고유의 수임.

4자리 16진수코드포인트라고 하며 코드포인트를 인코딩하는 방식에 따라
utf-8, utf-16, utf-32 등이 있음

댓글남기기