1. 컴퓨터의 자료 표현 기초
-
2진수 체계 사용 이유
- 컴퓨터는 전기가 흐름(On, 1, 참)과 흐르지 않음(Off, 0, 거짓)의 두 가지 신호만 명확히 구분할 수 있는 트랜지스터를 사용하기 때문이다.
- 이는 오류를 줄이고 효율적인 처리를 가능하게 한다.
-
데이터 단위
- 비트(Bit): 정보 표현의 최소 단위 (0 또는 1)
- 바이트(Byte): 8개의 비트가 모인 것. 문자 표현의 기본 단위
- 저장 용량 단위: 바이트 < 킬로() < 메가() < 기가() < 테라() < 페타() < 엑사() < 제타 < 요타
2. 진수와 수의 표현
-
진수의 종류
- 10진수: 인간에게 친숙한 수 (0~9)
- 2진수: 컴퓨터 내부 표현 (0, 1). 라이프니츠가 고안
- 8진수 & 16진수: 2진수를 사람이 읽기 편하게 줄여서 표현할 때 사용
- 2진수 3자리 → 8진수 1자리
- 2진수 4자리 → 16진수 1자리 (0
9, AF 사용)
-
진법 변환
- 10진수 → 2진수: 정수부는 2로 나누어 나머지를 역순으로, 소수부는 2를 곱해 정수 부분을 순서대로 나열
- 2진수 ↔ 8진수/16진수: 소수점을 기준으로 좌우로 3비트(8진수) 혹은 4비트(16진수)씩 끊어서 변환
3. 정수의 표현
-
정수(Integer)의 표현
- 부호 없는 정수(Unsigned): 0과 양수만 표현 (범위: ~ )
- 부호 있는 정수(Signed): 최상위 비트(MSB)를 부호 비트로 사용 (0=양수, 1=음수)
-
음수 표현 방식
- 1의 보수: 모든 비트를 반전 (0→1, 1→0).
+0과-0이 존재하는 단점이 있음 - 2의 보수(컴퓨터 표준): 1의 보수에 1을 더함
- 장점: 0이 하나만 존재하며, 뺄셈을 덧셈 회로로 처리 가능
- 표현 범위(n비트): ~
- 1의 보수: 모든 비트를 반전 (0→1, 1→0).
4. 실수의 표현
-
실수(Floating Point)의 표현
- 부동소수점 방식: 실수를 부호(Sign), 지수(Exponent), 가수(Mantissa)로 나누어 저장
- 정규화(Normalization): 형태로 변환하여 저장 효율을 높임
-
IEEE 754 표준
- 단정도(32비트): 부호 1비트 + 지수 8비트(127 bias) + 가수 23비트
- 배정도(64비트): 부호 1비트 + 지수 11비트(1023 bias) + 가수 52비트
- 편향 지수(Bias): 지수부가 음수가 되는 것을 막기 위해 특정 값(127 or 1023)을 더해서 저장
5. 문자의 표현
-
아스키 코드(ASCII)
- 7비트 사용 (128개 문자)
- 영문 대소문자, 숫자, 제어 문자 표현
- 1바이트에 저장(MSB는 0)
- cf. 아스키 코드의 값 연산
-
유니코드(Unicode)
- 전 세계 모든 언어를 표현하기 위한 표준
- 2바이트(16비트) 이상 사용 (UTF-8 등)
6. 논리 표현 및 연산
-
부울 대수(Boolean Algebra)
- 참(1)과 거짓(0)을 다루는 논리 수학
-
기본 논리 연산
- AND (논리곱): 둘 다 1일 때만 1
- OR (논리합): 하나라도 1이면 1
- NOT (논리부정): 반전 (0↔1)
-
논리 회로 설계
- 진리표(Truth Table) 작성 → 논리식 도출 → 부울 대수 법칙(교환, 결합, 분배, 드모르간 등)을 이용해 식 간소화 → 게이트(Gate)로 회로 구현
7. 컴퓨터의 연산
- 연산(Arithmetic)
- 덧셈: 일반적인 2진수 덧셈 수행 (비트 범위를 넘는 올림수는 무시)
- 뺄셈: A - B = A + (-B)의 원리를 이용
- 빼는 수(B)를 2의 보수로 변환한 뒤 더하는 방식으로 처리 (감산기 없이 가산기만으로 연산 가능)