티스토리 뷰

정보처리기사 필기 2과목 전자계산기 구조의 중요 개념 정리 포스팅입니다. 전자계산기 장치, 즉 컴퓨터의 본질은 다양한 연산을 인간 대신 빠르고 반복적으로 하는 것인 만큼 연산의 종류와 연산 작업에 대해 이해하는 것은 중요합니다. 그러나 연산은 말처럼 거창한 것이 아닌 우리에게 매우 익숙한 작업을 수행합니다. 이제부터 각각의 연산에 대해 이해해보도록 하겠습니다.

1. AND(Masking Operation)

AND 연산은 주로 특정 Bit를 삭제하는 Masking Operation을 수행하는 기능을합니다. 우리가 아는 AND는 대응되는 두 개가 공통된 경우 1을 출력하는 연산입니다. 그렇다면 반대로 생각해서 1과 1처럼 동시에 출력되지 않는 모든 경우가 발생할 경우 0을 출력하여 동시에 출력되지 않는 1을 '삭제'하는 역할도 수행한다고 볼 수 있습니다. 즉 삭제할 부분의 Bit를 0과 AND 시키면 해당 Bit가 삭제되는데, 이때 삭제하기 위해 대응시킨 0을 Masking Bit라고 합니다.

AND연산의 원리에 대해 쉽게 이해하기 위해 예제를 통해 설명하겠습니다.

아래의 두 비트를 AND연산 하는 문제를 해결해보겠습니다.

10110110
11011101

첫 번째 자리는 1과 1이 동시에 대응되므로 1을 출력합니다. 즉 1과 1이 동시에 대응되는 경우만 1을 출력하고 나머지 0과 1 또는 0과 0이 대응되는 경우 0을 출력하는 작업을 계속해서 수행하면 됩니다. 계속해서 작업을 반복하면 두 번째 자리부터 0, 0, 1, 0, 1, 0, 0의 결과를 도출해낼 수 있습니다. 최종적으로 두 비트를 AND연산한 값은 10010100입니다.

2. OR(Selective Set)

OR연산은 AND연산과는 달리 대응되는 비트에 하나라도 1이 있는 경우 1을 출력하는 작업을 수행합니다. 즉 0과 0이 대응되는 경우를 제외한 모든 경우 1을 출력하는 연산이라고 생각하시면 쉽습니다. 이러한 OR연산은 AND연산과는 반대로 특정 문자나 Bit를 삽입시킬 때 사용합니다. 특정 Bit에 1을 세트 하기 위해 해당 Bit의 위치에 삽입할 문자나 1을 OR 연산합니다.

마찬가지로 예제를 통해 OR연산을 이해해보도록 하겠습니다.

      A: 1110
OR  B: 0101

위의 두 비트를 OR 연산하면 첫 번째 자리부터 순서대로 1, 1, 1, 1의 결과가 도출됩니다. 최종적으로 OR 연산하여 얻는 결과값은 1111입니다.

3. XOR(Compare, 비교)

XOR는 Exclusive-OR와 같은 말로써 Exclusive의 의미인 '배타적인', '독점적인'을 참고할 경우 이해하기 쉽습니다. 두 비트를 비교하여 두 비트가 같은 경우에는 0을 출력하고 다른 경우에만 1을 출력하는 작업을 수행하는 연산입니다.

 

한 비트라도 다르면 1을 출력하는 연산을 수행하므로 2개의 데이터를 비교하거나 반전시키는 작업을 하고 싶을 때 사용합니다. 
예제를 통해 설명해보도록 하겠습니다.

A: 11001000 XOR   B: 00011101
위의 두 비트를 XOR 연산하면, 첫 번째 자리부터 순서대로 1, 1, 0, 1, 0, 1, 0, 1이 도출됩니다.

XOR연산의 최종 결과값은 11010101이 나옵니다.

4. NOT(Complement, 보수)

NOT은 반대되는 비트를 출력시키는 반전 기능을 수행하기 위해 사용됩니다. 1이면 자동적으로 반대 값인 0을 출력하고, 0을 입력하면 1을 출력하는 작업을 수행합니다.

5. 논리 Shift와 Rotate

논리 Shift 연산은 왼쪽 또는 오른쪽으로 1 Bit씩 이동시키는 연산입니다. Rotate연산은 Shift에서 밀려 나가는 비트의 값을 반대편에 입력하는 작업을 하는 연산입니다. 문자 위치가 오른쪽에서 왼쪽으로 이동하거나 그 반대로 이동할 때 사용됩니다.

Rotate연산을 예제를 통해 이해해보겠습니다.

11010010이 주어졌을 때, 4 Bit를 오른쪽으로 Rotate 한다.

위의 작업을 해결하려면 왼쪽의 4 Bit 값인 1101을 오른쪽으로 이동시켜 붙여주면 됩니다. 11010010의 왼쪽 네 자리 숫자들을 오른쪽으로 이동시키면 00101101이 되어 Rotate연산을 마무리할 수 있습니다.

6. 산술 Shift와 패딩 비트(Padding Bit)

산술 Shift는 2의 n승의 값을 곱하거나 나누는 효과를 내기 위해 왼쪽 또는 오른쪽으로 이동하는 연산을 말합니다. 비트를 왼쪽으로 n Bit만큼 자리 이동하면 2의 n승을 곱하는 효과가 나타나고, 오른쪽으로 n Bit만큼 이동시키면 2의 n승을 나눈 것과 동일한 효과가 나타납니다.

 

산술 Shift를 할 때 자리를 왼쪽이나 오른쪽으로 이동하며 생기는 위치에 채워지는 비트를 의미합니다. 패딩 비트는 보통 0으로 채워지는데, 음수의 경우 1의 보수법에서 Shift left, 1의 보수법과 2의 보수법에서 Shift right의 경우는 1이 패딩 비트로써 자리에 채워집니다.

패딩 비트를 삽입하는 작업은 복잡해 보이지만 간단한 원리 몇 가지만 이해하면 쉽게 이해할 수 있습니다. 예제를 통해 산술 Shift와 패딩 비트 삽입하는 원리에 대해 설명해보도록 하겠습니다.

11001011을 오른쪽으로 1 Bit만큼 Shift 한다.(2의 보수법)

이 예제를 풀기 위해서 일단 첫 번째 자리의 비트가 부호 비트임을 알아야 합니다. 따라서 부호 비트를 제외한 나머지 비트가 오른쪽으로 한 자리씩 이동하면 가장 오른쪽에 있던 1은 잃어버리는 비트가 됩니다.

이제 마지막으로 패딩 비트만 삽입해주면 마무리됩니다. 패딩 비트를 삽입하는 위치는 첫 번째 자리의 부호 비트인 1 바로 다음에 삽입합니다. 2의 보수법의 Shift right이므로 1을 삽입하면 최종적으로 얻는 결과값은 11100101입니다.

 

전자계산기 구조에 나오는 연산 개념에 대해 암기하기보다는 간단한 원리를 이해해서 정보처리기사 필기시험 실전에서 문제를 쉽게 풀 수 있도록 하면 상대적으로 유리할 수 있으니 원리를 꼭 이해하고 넘어가시기 바랍니다.

암기보다는 이해가 필요한 부분입니다. :)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday