728x90
반응형
SMALL

컴퓨터는 0과 1밖에 모른다.

 

어떻게 3+4를 할까?

 

 

정보 단위

 

비트(bit): 0과 1을 표현하는 가장 작은 정보 단위 (전구로 따지자면 꺼짐, 켜짐)

 

총 4가지가 가능 

 

00

 

01

 

10

 

11

 

 

* 3비트로는 8개가 가능

 

 

n 비트로는 2n승 가지의 정보 표현 가능

 

프로그램의 수많은 비트로 이루어져 있음

 

다만, 평소 "이 파일은 8,920,120 비트야" 라고 표현하진 않음

 

비트보다 더 큰 단위를 사용 

 

- 바이트, 킬로바이트, 메가 바이트, 기가 바이트, 테라 바이트 ...

 

 

1바이트 - 8비트

1킬로바이트 - 1000바이트

1메가바이트 - 1000킬로바이트

1기가바이트 - 1000메가바이트

1테라바이트 - 1000기가바이트

 

 

워드

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

- 하프 워드 : 워드의 절반 크기

- 풀 워드 : 워드 크기

- 더블 워드 : 워드의 두 배 크기

 

 

이진법 : 0과 1로 숫자 표현하기

 

이진법 (binary)

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

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

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

 

 

십진수.    이진수.

1                       1

2                       10

3                       11

4                       100

5                       101

6                       110

7                       111

8                       1000

 

보통 이진수를 표현할 때는 1000(2) 또는 0b1000 

 

 

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

- 어떤 수를 그보다 큰 2n에서 뺀 값

 

11(2) 보다 큰 2n = 100(2)

11(2)를 음수로 표현한 값 01(2)

 

- 모든 0과 1을 뒤집고 1 더한 값 

11(2)를 음수(2의 보수)로 표현하기

<11>

 

모든 0과 1 뒤집기

<00>

 

1 더하기

<01>

 

 

음수 두 번 구해보기

<1011>

<0101> 2의 보수로 표현

<1011> 다시 2의 보수로 표현

 

 

플래그(flag)

 

양수 0101(2) -> 5구나

음수 0101(2) -> 1011(2)의 음수구나

 

레지스터에 양수/음수를 구분하는 플래그가 있다. -> 플래그 레지스터

 

 

십육진법

- 이진법으로는 숫자의 길이가 너무 길어진다

- 십진수 32 == 이진수 100000

 

- 그래서 컴퓨터의 데이터를 표현할 때 십육진법도 많이 사용

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

 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 

0 1 2 3 4 5 6 7 8 9  A  B  C  D   E   F  10

 

십육진법 표기

15(16) - 수학적 표기 방식

ox15 - 코드상 표기 방식

 

 

직접 코드에 써넣는 사례도 많다.

 

offest = (offest & 0x00ffffff) << 2

 

 

팁: 이진수 -> 십육진수 변환

 

2진수와 16진수간의 변환이 쉽다 아주 간편하다 

 

그래서 16진수가 많이 쓰인다.

 

 

 

 

 

 

728x90
반응형
LIST

+ Recent posts