# Operator(์ฐ์ฐ์)
written by sohyeon, hyemin ๐ก
# 1. ์ฐ์ฐ์์ ํผ์ฐ์ฐ์
- ์ฐ์ฐ์(operator) : ์ฐ์ฐ์ ์ํํ๋ ๊ธฐํธ( + , - , * , / ๋ฑ )
- ํผ์ฐ์ฐ์(operand) : ์ฐ์ฐ์์ ์์ ๋์(๋ณ์, ์์, ๋ฆฌํฐ๋ด, ์์)
X + 3
+ : ์ฐ์ฐ์
X์ 3 : ํผ์ฐ์ฐ์
# 2. ์ฐ์ฐ์์ ์ข ๋ฅ
์ข ๋ฅ | ์ฐ์ฐ์ | ์ค๋ช |
---|---|---|
์ฐ์ ์ฐ์ฐ์ | + - * / % << >> | ์ฌ์น ์ฐ์ฐ๊ณผ ๋๋จธ์ง ์ฐ์ฐ |
๋น๊ต ์ฐ์ฐ์ | > < >= <= == != | ํฌ๊ณ ์์๊ณผ ๊ฐ๊ณ ๋ค๋ฆ์ ๋น๊ต |
๋ ผ๋ฆฌ ์ฐ์ฐ์ | && || ! & | ^ ~ | ๊ทธ๋ฆฌ๊ณ (AND) ์ ๋๋(OR)์ผ๋ก ์กฐ๊ฑด์ ์ฐ๊ฒฐ |
๋์ ์ฐ์ฐ์ | = | ์ฐ๋ณ์ ๊ฐ์ ์ข๋ณ์ ์ ์ฅ |
๊ธฐํ | (type) ?: instanceof | ํ๋ณํ ์ฐ์ฐ์, ์ผํญ ์ฐ์ฐ์, instanceof ์ฐ์ฐ์ |
# ๋จํญ ์ฐ์ฐ์
- ์ฆ๊ฐ์ฐ์ฐ์ ++ --
* ์ฆ๊ฐ ์ฐ์ฐ์(++) ํผ์ฐ์ฐ์์ ๊ฐ์ 1 ์ฆ๊ฐ์ํจ๋ค.
* ๊ฐ์ ์ฐ์ฐ์(--) ํผ์ฐ์ฐ์์ ๊ฐ์ 1 ๊ฐ์์ํจ๋ค.
- ๋ถํธ์ฐ์ฐ์ + -
๋ถํธ ์ฐ์ฐ์ '-'๋ ํผ์ฐ์ฐ์์ ๋ถํธ๋ฅผ ๋ฐ๋๋ก ๋ณ๊ฒฝํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
# ex) ์์
class OperatorEx4 {
public static void main(String[] args) {
int i = -10;
i = +i;
System.out.println(i);
i = -i;
System.out.println(i);
}
}
# ์คํ๊ฒฐ๊ณผ
-10
10
# ์ฐ์ ์ฐ์ฐ์
- ์ฐ์ ์ฐ์ฐ์ : ์ฌ์น ์ฐ์ฐ์(+, -, *, /)์ ๋๋จธ์ง ์ฐ์ฐ์(%)
# ex) ์์
class OperatorEx8 {
public static void main(String args[]) {
int a = 1_000_000;
int b = 2_000_000;
long c = a * b;
System.out.println(c);
}
}
# ์คํ๊ฒฐ๊ณผ
-1454759936 // intํ์
๊ณผ intํ์
์ ์ฐ์ฐ๊ฒฐ๊ณผ๋ intํ์
์ด๊ธฐ ๋๋ฌธ์ด๋ค. a*b์ ๊ฒฐ๊ณผ๊ฐ ์ด๋ฏธ intํ์
์ ๊ฐ์ด๋ฏ๋ก longํ์ผ๋ก ์๋ ํ๋ณํ๋์ด๋ ๊ฐ์ ๋ณํ์ง ์๋๋ค.
- ๋๋จธ์ง ์ฐ์ฐ์ %๋ ํผ์ฐ์ฐ์๋ก ์ ์๋ง ํ์ฉํ๋ค.
# ๋น๊ต ์ฐ์ฐ์
๋น๊ต ์ฐ์ฐ์๋ ๋ ํผ์ฐ์ฐ์๋ฅผ ๋น๊ตํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฐ์ฐ์๋ค.
- ๋์๋น๊ต ์ฐ์ฐ์ < > <= >=
๋น๊ต ์ฐ์ฐ์ | ์ฐ์ฐ๊ฒฐ๊ณผ |
---|---|
> | ์ข๋ณ ๊ฐ์ด ํฌ๋ฉด, true ์๋๋ฉด false |
< | ์ข๋ณ ๊ฐ์ด ์์ผ๋ฉด, true ์๋๋ฉด false |
>= | ์ข๋ณ ๊ฐ์ด ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด, true ์๋๋ฉด false |
<= | ์ข๋ณ ๊ฐ์ด ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด, true ์๋๋ฉด false |
- ๋ฑ๊ฐ๋น๊ต ์ฐ์ฐ์ == !=
๋น๊ต ์ฐ์ฐ์ | ์ฐ์ฐ๊ฒฐ๊ณผ |
---|---|
== | ๋ ๊ฐ์ด ๊ฐ์ผ๋ฉด, true ์๋๋ฉด false |
!= | ๋ ๊ฐ์ด ๋ค๋ฅด๋ฉด, true ์๋๋ฉด false |
# ๋ ผ๋ฆฌ ์ฐ์ฐ์
- ๋ ผ๋ฆฌ ์ฐ์ฐ์ - &&, ||
|| (OR๊ฒฐํฉ) : ํผ์ฐ์ฐ์ ์ค ์ด๋ ํ ์ชฝ๋ง true์ด๋ฉด true๋ฅผ ๊ฒฐ๊ณผ๋ก ์ป๋๋ค.
&& (AND๊ฒฐํฉ) : ํผ์ฐ์ฐ์ ์์ชฝ ๋ชจ๋ true์ด์ด์ผ true๋ฅผ ๊ฒฐ๊ณผ๋ก ์ป๋๋ค.
- ๋ ผ๋ฆฌ ๋ถ์ ์ฐ์ฐ์ - !
! : ํผ์ฐ์ฐ์๊ฐ true์ด๋ฉด false๋ฅผ, false๋ฉด true๋ฅผ ๊ฒฐ๊ณผ๋ก ๋ฐํํ๋ค.
- ๋นํธ ์ฐ์ฐ์ & | ^ ~ << >>
๋นํธ ์ฐ์ฐ์๋ ํผ์ฐ์ฐ์๋ฅผ ๋นํธ๋จ์๋ก ๋ ผ๋ฆฌ ์ฐ์ฐํ๋ค.
ํผ์ฐ์ฐ์๋ก์ค์๋ ํ์ฉํ์ง ์๋๋ค.
| (OR์ฐ์ฐ์) : ํผ์ฐ์ฐ์ ์ค ํ ์ชฝ์ ๊ฐ์ด 1์ด๋ฉด, 1์ ๊ฒฐ๊ณผ๋ก ์ป๋๋ค. ๊ทธ ์ธ์๋ 0์ ์ป๋๋ค.
& (AND์ฐ์ฐ์) : ํผ์ฐ์ฐ์ ์ ์ชฝ์ด ๋ชจ๋ 1์ด์ด์ผ๋ง 1์ ๊ฒฐ๊ณผ๋ก ์ป๋๋ค. ๊ทธ ์ธ์๋ 0์ ์ป๋๋ค.
^ (XOR์ฐ์ฐ์) : ํผ์ฐ์ฐ์์ ๊ฐ์ด ์๋ก ๋ค๋ฅผ ๋๋ง 1์ ๊ฒฐ๊ณผ๋ก ์ป๋๋ค. ๊ทธ ์ธ์๋ 0์ ์ป๋๋ค.
~ (๋นํธ ์ ํ ์ฐ์ฐ์) : ํผ์ฐ์ฐ์๋ฅผ 2์ง์๋ก ํํํ์ ๋, 0์ 1๋ก, 1์ 0์ผ๋ก ๋ฐ๊พผ๋ค.
>> (์ํํธ ์ฐ์ฐ์) : ํผ์ฐ์ฐ์์ 2์ง์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ค.
<< (์ํํธ ์ฐ์ฐ์) : ํผ์ฐ์ฐ์์ 2์ง์๋ฅผ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ค.
# ๊ธฐํ ์ฐ์ฐ์
- ์กฐ๊ฑด ์ฐ์ฐ์ ? :
์กฐ๊ฑด์ ? ์1 : ์2
// ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ true์ด๋ฉด ์1์ด, false์ด๋ฉด ์2๊ฐ ์ฐ์ฐ๊ฒฐ๊ณผ๊ฐ ๋๋ค.
# ex) ์์
result = (x > y) ? x : y;
if(x > y)
result = x;
else
result = y;
- ๋์ ์ฐ์ฐ์ = op=
= (๋์
์ฐ์ฐ์) : ๋ณ์์ ๊ฐ์ ์ ์ฅ๊ณต๊ฐ์ ๊ฐ ๋๋ ์์์ ์ฐ์ฐ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ๋๋ค.
op= (๋ณตํฉ ๋์
์ฐ์ฐ์) : ๋ค๋ฅธ ์ฐ์ฐ์(op)์ ๊ฒฐํฉํ์ฌ 'op='์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ค.
ex) i+= 3;
# 3. ์ฐ์ฐ์์ ์ฐ์ ์์
# 1. ์ฐ์ > ๋น๊ต > ๋ ผ๋ฆฌ > ๋์ ์์ผ๋ก ์ํ๋๋ค.
# ex) ์์
data & 0xFF == 0 // ๋นํธ ์ฐ์ฐ์(&)๋ ๋น๊ต ์ฐ์ฐ์(==)๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ์ผ๋ฏ๋ก ๋น๊ต์ฐ์ฐ ํ์ ๋นํธ์ฐ์ฐ์ด ์ํ๋๋ค.
data & (0xFF == 0)
# 2. ๋จํญ(1) > ์ดํญ(2) > ์ผํญ(3) ๋จํญ ์ฐ์ฐ์์ ์ฐ์ ์์๊ฐ ์ดํญ ์ฐ์ฐ์๋ณด๋ค ๋๋ค.
# ex) ์์
-x + 3 // ๋จํญ ์ฐ์ฐ์๊ฐ ์ดํญ ์ฐ์ฐ์๋ณด๋ค ์ฐ์ ์์๊ฐ ๋์ผ๋ฏ๋ก x์ ๋ถํธ๋ฅผ ๋ฐ๊พผ ๋ค์ ๋ง์
์ด ์ํ๋๋ค.
(-x) + 3
# 3. ๋จํญ ์ฐ์ฐ์์ ๋์ ์ฐ์ฐ์๋ฅผ ์ ์ธํ ๋ชจ๋ ์ฐ์ฐ์ ์งํ๋ฐฉํฅ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ด๋ค.
# Question
- ์ฐ์ฐ์์ ํผ์ฐ์ฐ์ ๋ํด ์ค๋ช ํ์์ค.
- ์ฐ์ฐ์์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ์์ค.