노는게 제일 좋습니다.
4회차 : 산술,논리 연산자 본문
1. 산술 연산자
+ - * /
이 때, int a=-1; 에서의 뺄셈기호(-)는 산술연산자가 아닌 부호연산자로, 음수값을 반환한다.
2. 대입 연산자.
a=3; 에서 대입연산자(=)는 우변의 상수 3을 좌변의 변수 a에 대입한다.
3. 복합 대입 연산자
a=a+3; 과 같은 코드를 a+=3; 과 같이 축약할 수 있다.
여기서 +=와 같은 연산자를 복합대입연산자라고 한다.
+= -= *= /= %= <<= >>= &= |= ^=
4. 증감 연산자
a=a+1;를 a+=1;이라고 쓸 수도 있고, a++; 또는 ++a;라고 할 수도 있다.
여기서 ++ 를 증감연산자라고 한다.
증감연산자는 전위형 또는 후위형으로 쓸 수 있다. ++a;가 전위형으로, a++;가 후위형으로 사용된 것이다.
전위형의 경우 a를 증감한 뒤에 값을 리턴하지만, 후위형은 일단 값을 리턴한 뒤에 증감한다.
종류 : ++, --
5. 관계 연산자
==
!=
>
<
>=
<=
6. 논리 연산자
!
&&
||
7. 비트 연산자
~ : not연산자 (비트 반전)
& : and연산자
| : or연산자
^ : XOR(배타적논리합)
<<
>> : 쉬프트연산자
8. 회전 연산
쉬프트 연산자와 유사하나, 버려지는 비트들을 살려낸다는 차이가 있다.
예를 들어, 쉬프트 연산시 왼쪽으로 밀려나 사라졌던 비트를, 회전연산에서는 맨 오른쪽으로 넣는다.
또, 쉬프트연산시에 오른쪽으로 밀려나 사라지던 비트가 회전연산을 할 때는 맨 왼쪽으로 들어온다.
연산자로는 없고, 함수로 제공된다.
_rotr() : 반시계방향으로 회전연산
_rotl() : 시계방향으로 회전연산
#include <stdio.h>
void main()
{
int i=1;
i=_rotr(i,2);
printf("%d",i);
getch();
}
{
int i=1;
i=_rotr(i,2);
printf("%d",i);
getch();
}
위 코드에서 출력값은 1073741824이다. 2진수로 표현하면 01000000000000000000000000000000(2) 가 된다.
'C' 카테고리의 다른 글
6회차 : 함수의 구성 원리, 헤더 파일 (0) | 2017.02.03 |
---|---|
5회차 : 기타 연산자, 연산 규칙 (0) | 2017.02.02 |
3회차 : 제어문 (0) | 2017.01.26 |
2회차 : 열거형, 유도형 개요 (0) | 2017.01.26 |
1회차 : 변수, 기본형 (0) | 2017.01.25 |
Comments