[컴퓨터 구조] 0과 1로 숫자를 표현하는 방법
컴퓨터는 0
과 1
로 모든 정보를 표현하고, 0
과 1
로 표현된 정보만을 이해할 수 있음
정보 단위
비트(bit)
0
이나1
의 값을 가질 수 있음0
과1
을 나타내는가장 작은
정보 단위- n비트는 2n의 정보를 표현할 수 있음
- 예) 1비트 = 1, 2비트 = 10, 3비트 = 111
바이트(byte)
여덟 개의 비트
를 묶은 단위- 1바이트 == 8비트 (28이니까 256까지 표현 가능)
- 더 큰 단위
- 킬로바이트(KB, kilobyte) - 1바이트 1,000개
(1000B)
- 메가바이트(MB, megabyte) - 1킬로바이트 1,000개
(1000KB)
- 기가바이트(GB, gigabyte) - 1메가바이트 1,000개
(1000MB)
- 테라바이트(TB, terabyte) - 1기가바이트 1,000개
(1000GB)
- 더 큰 단위들도 존재하나 일반적으로 다루는 크기는 최대 테라바이트 정도
- 킬로바이트(KB, kilobyte) - 1바이트 1,000개
워드(word)
- CPU가 한번에 처리할 수 있는
데이터 크기
- 요즘 컴퓨터의 워드 크기는 대부분 32비트 또는 64비트
예) intel x86 = 32비트 워드, intel x64 = 64비트 워드
- 자주 쓰이는 크기
- 하프 워드(half word) -
절반
크기 - 풀 워드(full word) -
1배
크기 - 더블 워드(double word) -
2배
크기 예) intel x86 CPU의 경우 하프 워드 - 16비트, 풀 워드 - 32비트, 더블 워드 - 64비트
- 하프 워드(half word) -
표현법
10진법
0
부터9
까지의 숫자만으로 모든 숫자를 표현하는 방법- 숫자가
9
를 넘어가는 시점에 자리 올림 - 우리가 일상적으로 사용하고 있는 숫자 세는 법
2진법
0
과1
만으로모든 숫자
를 표현하는 방법- 숫자가
1
을 넘어가는 시점에 자리 올림표기법
- 수학적 표기 - 2진수 끝에 아래첨자 (2) 붙이기
- 예) 1000(2)
- 코드상 표기 - 2진수 앞에 0b 붙이기
-
예) 0b1000
10진수 2진수 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 10 1010
-
- 수학적 표기 - 2진수 끝에 아래첨자 (2) 붙이기
2진수의 음수 표현
- 컴퓨터는
0
과1
만 이해할 수 있기 때문에0
과1
만으로 음수를 표현해야 함 - 가장 널리 사용되는 방법은
2의 보수
- 사전적 의미는 ‘어떤 수를 그보다 큰 2n에서 뺀 값’
- 위의 사전적 의미로 이해하는 것 보다, 더 쉽게 표현하는 방법은 모든
0
과1
을 뒤집고, 거기에1
을 더하면 됨 -
표시가 없기때문에 음수 양수 구분하기가 어렵지만 컴퓨터 내부에서 이를 구분하기 위한플래그
값이 있음- 가장 널리 사용되지만 완벽한 방식은 아님
- 0이나 2n 형태의 2진수에는 원하는 값이 안나옴
2진수 2의 보수 11 01 1011 0101 1010 0110 1010 1110 0101 0010
16진법
0
부터15
까지의 숫자로 표현하는데10
에서15
까지는 영어로 표기(10=A, 11=B, 12=C, 13=D, 14=E, 15=F)
F
를 넘어가는 시점에 자리 올림표기법
- 수학적 표기 - 16진수 끝에 아래첨자 (16) 붙이기
- 예) 1A(16)
- 코드상 표기 - 16진수 앞에 0x 붙이기
-
예) 0x1A
10진수 16진수 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F 16 10
-
- 수학적 표기 - 16진수 끝에 아래첨자 (16) 붙이기
댓글남기기