=> 데이터를 가공하는데 필요한 수학/논리 등의 처리를 지시하는 기호들
1. 사칙연산자
- 수학적인 처리를 지시하는 연산자
[형태]
+ 더하기, - 빼기, * 곱하기, / 나누기, % 나머지
* 참고 : 데이터를 연산하면 그 결과는 항상 큰 데이터 형식으로 탄생된다.
- 사칙연산의 우선순위 : ( *, / ) -> ( + , - ) -> ( % )
ex) 5 + 2 * 10 의 경우는 25이다.
①
②
- 같은 순위의 연산자가 섞여있다면 왼쪽부터 오른쪽 방향으로 처리.
2. 부호연산자
- 부호를 변경할 때 사용하는 연산자
[형태]
+ 현재부호 유지, - 현재부호 변경
ex) int a = 5;
a = -a; -> a에는 -5가 기억된다.
3. 문자열 결합
- 앞 문자열에 뒷 문자열을 나란히 붙여주는 연산을 말한다.
[형태]
" 문자열 " + " 문자열 "
ex) "안녕" + "하세요" => "안녕하세요"
* 참고 : + 기호 양쪽 어느 하나라도 문자열이면 항상 결과는 문자열로 탄생한다.
ex) int a = 10;
"안녕" + a => "안녕10"
ex2) int a = 10, b = 20;
a + "방가" + b => "10방가20"
a + b + "방가" => "30방가"
"방가" + a + b => "방가1020"
4. 대입연산자
- 메모리(변수)에 데이터를 기억시키는 연산자
[형태] =
* 참고 : 1. 모든 연산에 대하여 항상 우선순위가 마지막이다.
2. 메모리(변수)가 담을 수 없는 값이 오면 에러 발생.
3. 대입연산자가 중첩되면 오른쪽에서 왼쪽으로 처리.
5. 증감연산자
- 1씩 증가/감소 시키는 연산자
[형태] ++, --
* 참고 : 1. 자동적으로 대입이 이루어진다.
2. 다른 연산자와 같이 있으면 다른 연산자 보다 먼저 처리될 지,
나중에 처리할 지를 결정할 수 있다.
ex) ++a, --a => 먼저 처리.
a++, a-- => 나중에 처리.
6. 비교연산자
- 두 수치의 크고 작은 관계를 결정하는 연산자
[형태]
== 같다, <, <=, >, >=, != 같지않다
* 참고 : 이 연산의 결과는 boolean 값으로만 탄생한다.
ex) boolean a = 10 > 20; (o) -> a에는 false가 기억.
int a = 10 > 20; (x)
7-1. 논리연산자1
- 두개의 논리 값을 가지고 AND, OR, XOR 연산을 하는 것
[형태]
&& -> AND, || -> OR, ^ -> XOR
* 참고 : 연산의 결과는 항상 boolean 값으로 나온다.
ex) if (a>10 && a<20) => a가 10보다 크고 20보다 작은 경우
7-2. 논리연산자2
[형태]
& , |, ^
《논리연산자 1과 2의 차이점》
- 1은 절삭연산을 하고 2는 절삭 연산을 하지 않는다.
* 절삭연산이란?
-> AND연산이 중복된 경우... 앞쪽의 결과가 거짓이면 뒷쪽을 처리하지 않는다.
OR연산이 중복된 경우... 앞 쪽의 결과가 참이면 뒷쪽을 처리하지 않는다.
8. 3항연산자 (=조건연산자)
- IF 명령을 단순화 시킬 연산자로 조건에 따라 두가지 처리 중 하나만 처리하도록 하는
연산자
[형태]
조건식? 처리1 : 처리2;
(의미 - 조건식이 참이면 처리1만, 거짓이면 처리2만..)
9. 비트연산자
- 오직 정수에만 사용
정수를 2진수로 변경하고 각 자리마다 AND, OR, XOR 연산을 하는 것.
연산의 결과는 정수로 탄생한다.
[형태1]
&, |, ^
ex) byte a = 10; a = 00001010
byte b = 7; => b = 00000111
byte c = (byte)(a&b); c = 00000010 -> 결과는 2
ex2) byte a = 9; a = 00001001
byte b = 4; => b = 00000100
byte c = (byte)(a|b); c = 00001101 ->결과는 13
[형태2]
~ -> 모든 bit를 역으로 변경(NOT연산)
ex) byte a = 10; => a = 00001010
byte c = (byte)~a; c = 11110101
└ 부호 bit ( 0 -> 양수, 1 -> 음수)
* 음수를 10진수로 바꾸는 방법
1) 모든 bit를 뒤집는다.
2) -1을 한다.
3) 10진수로 바꾼다.
* 음수인 10진수를 2진수로 바꾸는 방법
1) 양수로 생각하고 2진수로 바꾼다.
2) +1을 한다.
3) 모든bit를 뒤집는다.
10. 쉬프트연산자
- 2진수 상태에서 각 자리를 특정 방향으로 이동 시키는 연산자
[형태]
>> (오른쪽으로 이동 - 빈공간을 부호 bit로 채운다.)
<< (왼쪽으로 이동)
>>> (오른쪽으로 이동 - 빈공간을 0으로 채운다.)
11. 복합대입연산자
- 자기 자신에게 연산을 한 후 다시 자기에게 기억시키는 연산.
[형태] 변수 연산자 = 값;
12. CAST연산
- data의 형태를 임시로 변경하는 연산자
ex) int a = (int)(3.4 + 7.8) -> a = 11
int b = (int)3.4 + (int)7.8 -> b = 10
댓글을 달아 주세요
문자열 결합에 한가지 더 추가한다면..
문자열 이 합쳐지는게 아니라 결합된 값이... 객체가 새로 생성된다는것! ^^;