본문 바로가기

컴퓨터공학기초 개념/컴퓨터구조28

10. 논리회로 - 부울대수와 논리식의 간편화 1. 실무 적용 사례 - 우선 실무 적용 사례를 통해서 부울대수와 진리표에 대해서 간략하게 알아보자. - 단일 비트(한자리 비트) 연산을 할 때 S는 a + b 값을 담는다. - C는 Carry라고 부르며 1 + 1를 연산하면 발생하는 초과값을 담는다. - 진리표는 단일 비트 계산의 모든 경우의 수를 적은 표를 말한다. - 부울대수는 S 값에 대한 관계를 표현한 식이다. - 부울대수를 확인하면 배타적 논리합이라는 것을 알 수 있는데, 이는 S값을 보면 된다. - 0 + 0 일 때 0이고 1 + 0 또는 0 + 1일 때 1이 나오는 배타적 논리합 관계인 것을 알 수 있다. - C계산 과정도 논리 곱의 형태라는 것을 알 수 있다. - 이를 기반으로, 단일비트 합에 대한 연산을 논리 회로로 구성을 하면 위와 .. 2021. 8. 5.
9. 논리회로 - 논리 게이트(logical gate) 1. 논리 회로란? - 컴퓨터는 모든 데이터를 2진법으로 처리한다. - 이 2진법은 전기신호에 의해 컴퓨터 내부에서 연산 및 처리가 된다. - 이처럼 컴퓨터의 데이터 처리를 위해, 0과 1로 표현되는 전기적 신호로 동작하는 전자회로를 말한다. 2. 논리 게이트란? - 논리 게이트는 논리회로의 기본 구성요소 중 하나이다. - 논리 회로는 2개의 입력과 1개의 출력을 기본으로 구성한다. - 논리 게이트는 전류나 전압으로 표현되는 데이터의 흐름을 제어하기 위해 사용되는 것이다. - AND, OR, NOT, XoR이 논리게이트다. - NOT 게이트를 제외하고 모두 2개의 입력을 받는다. a) 스위칭 이론 b) AND 게이트(논리 곱) - 입력 A와 B 모두 1인 경우에만 1이 출력된다. - 그 외의 경우에는 모.. 2021. 8. 5.
8. 데이터 표현 - BCD, 패리티 비트, 해밍코드 1. BCD(Binary Coded Decimal) - 10진수를 2진법으로 계산한 코드다. - 2진법으로 변환만 한 것이기에 연산용이 아니라 출력용으로 사용된다. 2. 패리티 비트(parity bit) - 데이터 통신에 있어서 데이터의 오류를 검출하기 위해 사용되는 비트 - 데이터를 전송하다보면 통신과정에서 값이 변형이 될 수 있다. - 이러한 데이터의 변형을 예방하고, 검사하기 위해서 사용되는 비트다. - 짝수 패리티: 1의 개수가 짝수가 되도록 맞춘다. - 홀수 패리티: 1의 개수가 홀수가 되도록 맞춘다. 3. 해밍 코드(Hamming code) - 패리티 비트와 함께 사용되는 방식이다. - 해밍코드는 자기정정 부호의 하나로, 이는 오류를 검출할 뿐만 아니라 정정할 수 있다는 의미다. - 데이터에 .. 2021. 8. 5.
7. 데이터 표현 - 실수 1. 개요 - 이전 포스팅에서 보수에 대해서 알아보았다. - 보수를 이용하여 컴퓨터가 어떻게 정수를 표현하고 계산하는지를 배웠다. - 이번 포스팅에서는 컴퓨터가 실수를 표현하는 방법을 알아보자. 2. 컴퓨터는 실수를 어떻게 표현할까? - 사실 컴퓨터는 실수를 정확하게 표현할 수 없다. 즉, 약간의 오차가 있다. - 왜 그런지 컴퓨터가 실수를 표현하는 방법에 대해서 알아보자. a) 소수를 이진법으로 바꿔보자. - 예를 들어, 5.34를 이진법으로 바꿔보자. - 우선 정수와 소수부를 나누어서 계산한다. - 5를 이진법으로 바꾸면 101이 된다. - 소수부 0.34는 다음과 같은 계산을 한다. - 끝까지 계산해보지는 않았지만, 아마도 무한소수가 될 것 같다. - 계산 결과를 살펴보면 10100101 어쩌구가 .. 2021. 8. 4.
6. 데이터 표현 - 2의 보수를 사용하는 이유 1. 개요 - 앞선 포스팅에서 1의 보수와 2의보수에 대해서 알아보았다. - 컴퓨터가 음수의 계산을 뺄셈이 아닌 덧셈으로 하기 위해서 보수를 사용한다는 것을 알았다. - 그 과정에서 보수를 구하는 방법이 두가지(1의 보수, 2의 보수)가 있다. - 왜 두개가 있는걸까? 보수를 구하는 방법은 하나만 있어도 충분한 거 아닐까? 차이점이 뭘까? - 이러한 궁금증이 들었다. 이 글을 읽는 당신도 그러하다면, 같이 알아보자. 2. 2의 보수를 사용하는 이유 - 결론부터 알아보자. - 2의 보수를 사용하는 이유는 동일한 저장공간을 이용하여 1의 보수보다 더 많은 수의 표현을 할 수 있기 때문이다. - 그렇다면 왜 그런지 차근차근 알아보자. a) 양수는 보수가 없다. - 위의 표를 살펴보자. - 10진수를 이진법으로.. 2021. 8. 3.
5. 데이터 표현 - 2의 보수 (Two's complement) 1. 2의 보수를 구하는 방법 - 이번 포스팅은 지난 포스팅에 이어서 2의 보수를 구하는 방법에 대해 알아보자. - 십진법으로 표현된 음수 -10을 이진법으로 계산한다. - 이진법으로 계산된 값을 토대로 1의 보수를 구한다. - 2의 보수를 구하는 방법은 1의 보수에 1을 더하는 것이다. 즉, 0101 + 1 이다. - 결과는 0110으로, 이것이 -10에 대한 2의 보수가 된다. a) 양수가 나오는 연산 - 캐리가 있는 경우 - 다음 예시를 통해서 알아보자. - 위의 예시처럼, -10에 대한 2의 보수까지 계산을 완료했다. - 이제 1101과 덧셈을 진행한다. -1의 보수와 다르게, 2의 보수는 캐리가 발생하면 버린다. - 결과적으로 0011이 남는다. 십진법으로 계산하면 3이 된다. - 올바른 계산결.. 2021. 8. 3.
4. 데이터 표현 - 1의 보수(one's complement) 1. 2진법에서 보수를 사용하는 방법 a) 1의 보수(one's complement)란? - 2진법에서 보수를 사용하여 음수를 표현하는 방식이다. - 어떻게 구하는지 아래의 예시를 통해 알아보자. b) 1의 보수를 구하는 방법 - 위의 그림처럼, 십진법으로 표현된 음수 -10을 2진법으로 어떻게 표현하는지 알아보자. - 우선 +10을 이진법으로 계산하여 1010을 만든다. - 그리고 나서 1과 0을 서로 바꿔준다. 1010 → 0101 - 이렇게 이진법으로 양수를 먼저 구하고, 1과 0을 바꾸어 음수를 구한다. - 이것이 이진법으로 음수를 표현하는 방법이다. - 이것이 이진법에서 -10의 보수를 구하는 방법이다. - 즉, 1의 보수를 구하는 방법이다. c) XoR(exclusive or) - 반전 - 위.. 2021. 8. 3.
3. 데이터 표현 - 보수(Complement)란? 1. 보수란 무엇인가? - 컴퓨터는 1과 0으로 수를 표현한다. - 컴퓨터는 오로지 덧셈만을 이용하여 연산을 처리한다. - 이 과정에서 음수를 표현하거나, 음수 연산할 때 보수라는 개념을 사용한다. - 이를 위해서 보수에는 여러가지 개념들과 기능이 있다. 같이 알아보자. a) 부호 절대값(sign magnitude) - 음수를 표현하는 방법 - 2진법으로 수를 표현할 때, 가장 왼쪽의 값을 최상위 비트(MSB)라고 한다. - 이 최상위 비트를 이용하여 음수를 표현해준다. - 다음 예시를 통해 이해 해보자. ex) 정수를 음수로 표현할때 - 정수(= int 자료형)는 보통 32bit(4byte)의 크기를 갖는다. - 예를 들어, 5를 2진법으로 표현하면 다음과 같다. ex) 5 = 0000 0000 000.. 2021. 8. 3.
2. 데이터의 표현 - 진법 1. 진법 - 컴퓨터는 0과 1을 사용하는 2진법을 이용해 데이터를 이해한다. - 사람이 이해할 수 있도록 2진법을 다양한 진법으로 확장하여 표현한다. - 기본적으로 사용되는 진법은 다음과 같다. a) 2진법, 8진법, 10진법, 16진법에 대하여 - 2진법은 0과 1만을 사용하여 수를 표현하는 방법이다. - 8진법은 0~7까지 사용하여 수를 표현하는 방법이다. - 10진법은 0~9까지 사용하여 수를 표현하는 방법이다. - 16진법은 0~9와 A, B, C, D, E, F를 사용하여 수를 표현하는 방법이다. b) 2진법 ↔ 10진법 변환방법 b) 10진법 ↔ 8진법 변환방법 c) 16진법 ↔ 10진법 변환방법 d) 8진법, 16진법를 2진법으로 변환하고 싶다면? - 8진법를 2진법으로 변환하거나, 8진법.. 2021. 8. 2.