원문 : https://github.com/bibi6666667/TIL/blob/main/2022.01/220103.md
CS01 - 진법 변환기
학습
연산
- 연산 = 컴퓨터가 하는 계산
- 0과 1만을 사용함
- CPU는 산술 연산(덧셈, 뺄셈)과 논리 연산(AND, OR, NOT)을 한다.
- CPU에 FPU(Floating Point Unit, 부동소수점 연산) 기능이 추가되면 곱셈, 나눗셈도 처리한다.
2진법
- 인간은 0-9를 사용하는 10진법을, 컴퓨터는 0-1을 사용하는 2진법을 사용
- 비트(bit) : 2진수의 한 자리 숫자를 1비트라고 한다.
- 바이트(byte) : 특별히 8비트를 1바이트라고 부른다.
- 1비트가 0-1을 표현할 수 있으며(총 2개), 8비트는 0-255를 표현할 수 있다(총 256개)
논리 연산과 디지털 논리 회로
CPU는 고도의 IC(집적 회로)이다.
IC는 논리 연산을 수행한다.
- 논리 회로는 기본적으로 입력이 2개, 출력이 1개이다.
- 논리 회로는 릴레이(relay) 부품으로 만들어진다.
- 디지털 논리회로로 사칙연산을 구현할 수 있고, 현대의 CPU에는 ALU라는 부품으로 구현되어 있다.
논리 회로
- 논리 회로를 논리 게이트라고도 한다. AND 게이트, OR 게이트, NOT 게이트.
기본 논리 회로 - AND, OR, NOT
- AND 회로 : 모든 입력이 1(true)일 때만 결과가 1(true)이다.
- OR 회로 : 입력 중 하나라도 1(true)이면 결과가 1(true)이다.
- NOT 회로(= INVERTOR 회로) : 입력을 반전한 결과를 출력한다.
- 1(true) -> 0(false), 0(false) -> 1(true)
확장 논리 회로 - NAND, NOR, XOR
- NAND 게이트 : 모든 입력이 1(true)일 때만 결과가 0(false)이다.
- AND 회로와 완전히 반대로 동작하기 때문에 NOT + AND = NAND 게이트이다. 즉 AND 게이트 + NOT 게이트 = NAND 게이트이다.
- NOR 게이트 : 입력 중 하나라도 1(true) 이면 결과가 0(false)이다.
- OR 회로와 완전히 반대로 동작 (NOT + OR = NOR). 즉 OR 게이트 + NOT 게이트 = NOR 게이트이다.
- XOR 게이트 : 두 입력이 서로 다를 때만 결과가 1(true)이다.
- EXOR 회로라고도 하며, EX는 Exclusive(배타적인) 이라는 뜻이다.
반가산기 half-adder
- 반가산기는 "1비트끼리의 덧셈"을 하는 기본 회로이다.
- 이진수의 1의 자리를 계산할 때만 사용 가능하다.
- XOR 회로와 AND 회로를 연결해 만든다.
- 합(S, sum) : 두 비트의 합을 의미
- 자리올림(C, Carry) : 두 비트를 합했을 때 자리올림이 발생하는지를 의미
전가산기 full-adder
- 전가산기는 3가지 입력에서 2가지 출력이 가능한 덧셈 회로이다.
- 순차 자리올림 가산기(ripple carry adder) : 반가산기 하나와 전가산기 여러 개를 연결한 것. 여러 자릿수의 덧셈이 가능하다.
- CI(Carry In) : 자리올림 입력
- CO(Carry Out) : 자리올림 출력
진법 변환기