c언어와 같이 배우는 전공과목중 컴퓨터 구조가 있습니다. 거기서는 지금 불 대수와 and, or, not, xor 과 시프트 게이트 회로를 배우고 있는데요. 이것을 c언어에서도 연산자로 처리해줄 수 있다는 것, 아시나요? 이번시간은 그런 수의 논리연산을 해주는 비트연산자, 항의 논리연산을 해주는 논리연산자, 두 항을 비교하는 비교연산자를 알아보겠습니다.
복습해보자면, AND연산은 두 입력을 곱해주는 논리곱이였습니다. OR연산은 두 입력을 더해주는 논리합이구요.
NOT연산은 입력값을 반전시키는 데요. XOR은 두 입력이 다르면 1을 출력하는 배타적 논리합이였습니다.
마지막으로 쉬프트는 모든 비트를 그대로 한칸씩 옆으로 이동시키는 연산을 했습니다.
이런 연산을 c언어에서 그대로 할 수 있습니다! 비트연산자를 이용해서라면요.
비트연산자는 이렇게 두 항의 비트(0과 1로된 값)를 한비트씩 모두 연산해서 결과를 내는데요, 통채로 항 자체(식)끼리 논리연산을 시키는 연산자도 있습니다! 항의 값이 0이아닌 수면 참, 0이면 거짓으로 보아서 두 항을 논리연산시키는 데요, 이것이 논리연산자입니다.
이것을 써먹는 때는 바로 두 수를 비교하는 비교연산자가 중복될때 인데요.
비교연산자는 수학에서 봤던 부등호와 부등식과 똑같습니다! 관계연산자라고도 하는데, 하는 역할은 연산자의 기호가 몇몇은 다르더라도 두 수를 연산자로 비교해서 그 결과가 맞으면 참(1), 틀리면 거짓(0)이 비교결과가 됩니다.
컴퓨터 구조 수업과 융합된 내용이여서 컴구 수업도 복습하고, 새로 c언어의 연산자도 익히는 시간이였습니다. 이번시간에 유의할점을 뽑자면 단순대입연산자인 =과 비교연산인 ==를 햇갈리지 않게 조심해야 겠습니다!
'c언어' 카테고리의 다른 글
C언어 형식문자, 심화 (4) | 2019.07.02 |
---|---|
비트, 논리, 비교연산 예제 (0) | 2019.06.30 |
산술, 대입연산 예제 (0) | 2019.06.29 |
다양한 자료형, 상수화 (0) | 2019.06.29 |
산술, 대입 연산자, 형 확장 (0) | 2019.06.29 |