안녕하세요 ! 초보개발자 입니다.
이 블로그는 개인 공부 정리용 블로그 입니다.
혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.
그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.
그럼 시작하도록 하겠습니다.
오늘은 연산자에 대해서 알아보겠습니다.
연산자
1) 연산자
연산자는 연산을 수행하는 기호로써 우리가 어렸을때 많이 배웠던 +,-,*,/ 등을 연산자라고 합니다.
2) 피연산자
연산자의 작업대상을 말하며 예를 들어 num+2 라는 식이 있을 때 변수 num 과 2를 피연산자라고 합니다.
3) 연산자의 종류
아래 표로 정리 해보았습니다.
종류 |
연산자 |
산술 연산자 |
+ , - , * , / , % |
비교 연산자 |
<, >, >=, <=, == != |
논리 연산자 |
&&, | |, ! |
비트 연산자 |
&, |, ^, ~, <<, >> |
대입 연산자 |
= |
3-1) 산술연산자
산술 연산자는 (+, -, *, /, %) 가 있습니다. (+, -, *, /) 이것은 우리가 살아오면서 많이 보았던 것입니다. %는 잘 접해 보지 못한 것인데 나머지 연산이라고 합니다. 예로 들면 5%4 를 하면 5를 4로 나누면 나머지가 1입니다. 그래서 5%4=1 이 됩니다. 이해가 가시나요 ? 산술연산자를 예제로 한번 알아 보겠습니다.
예제를 적어 봤지만 설명 할 것이 없네요. 설마 사칙연산을 모르시는 것은 아니죠 ? 나머지연산은 20/3 했을 때 나머지가 2 이기 때문에 20%3 = 2가 출력이 될 것입니다.
3-2) 비교연산자
비교 연산자는 (<,>,<=,>=,==,!=) 가 있습니다. 비교연산자는 두 피연산자의 값을 비교 합니다. 그 결과 참이면 1, 거짓이면 0을 반환 합니다.
예제로 알아보겠습니다.
음.. 역시나 설명 할것이 없네요 .. 참이면 1을 거짓이면 0 을 반환한다는것만 알면 되겠습니다.
3-3) 논리연산자
논리연산자는 (&&, | |, ! )가 있습니다. && 는 두 피연산자가 모두 참일 경우에만 참이고 | |는 두피연산자중 하나라도 참이면 참의 결과를 얻습니다. 예제를 통해 살펴 보겠습니다.
위의 예제가 이해가 가시나요 ? 첫번째 식은 a<2 가 거짓이니 0 이나올것이고 a<5는 참이기 때문에 1을 반환 합니다. 그러므로 0(거짓) && 1(참) 이기 때문에 0을 반환합니다. 두번째 식은 0(거짓) || 1(참) 이기때문에 1을 반환합니다. 이것만 기억하시면 됩니다. &&는 둘 다 참이어야만 1을 반환하고 ||는 둘 중 하나라도 참이면 1을 반환합니다. !연산자는 '참'이면 '거짓' '거짓'이면 '참' 을 반환합니다.
4-4) 비트연산자
비트 연산자( &, |, ^, ~, <<, >>)는 피연산자를 비트 단위로 논리 연산을 합니다. &는 피연산자 양쪽이 1이어야 1을 결과로 얻고 |는 둘중하나라도 1이면 1을 얻습니다. ^은 피연산자의 값이 다를 때만 1을 결과로 얻습니다.
10101011
| ) 00001111
-------------
10101111
위의 식은 10101011 과 00001111을 '|' 연산한 결과입니다. 이해가 가시나요 ?
10101011
& ) 00001111
-------------
00001011
위의 식은 10101011과 00001111을 '&' 연산한 결과 입니다.
10101011
^ ) 00001111
-------------
10100100
위의 식은 10101011과 00001111을 '^'연산한 결과 입니다.
이해가 가시죠 ?
다음은 쉬프트 연산자 입니다. 쉬프트 연산자는 피연산자를 2진수로 바꾸고 오른쪽이나 왼쪽으로 이동하는 연산자 입니다.
예를 들어 '10>>2' 는 10진수 10을 2진수로 바꾼뒤 오른쪽으로 2자리 이동 하는것 입니다.
10을 2진수로 표현하면 00001010 입니다. 오른쪽으로 두자리 이동하면 오른쪽 10은 사라지고 왼쪽에 두자리가 비워진것은 0으로 채웁니다. 그결과 00000010 으로 바뀌게 됩니다.
그렇다면 '10<<2' 는 반대로 하면 되겠죠 ?
오늘은 여기서 마치도록 하겠습니다.
다음시간에는 조건문에 대해서 배워보도록 하겠습니다.
감사합니다.
'프로그래밍 > C언어' 카테고리의 다른 글
[C언어] 반복문에 대해 알아보자. (2) | 2017.04.10 |
---|---|
[C언어] 조건문(if,switch)에 대해 알아보자. (3) | 2017.04.06 |
[C언어] 진법 (0) | 2017.04.04 |
[C언어] printf 함수와 scanf 함수 (1) | 2017.04.03 |
[C언어] 변수(2) (1) | 2017.04.03 |