๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

[์ž๋ฐ”] ์—ฐ์‚ฐ์ž (์‚ฐ์ˆ , ๋Œ€์ž…, ๋น„๊ต, ๋…ผ๋ฆฌ, ์ฆ๊ฐ, ์‚ผํ•ญ ์—ฐ์‚ฐ์ž) ๋ณธ๋ฌธ

full stack/JAVA

[์ž๋ฐ”] ์—ฐ์‚ฐ์ž (์‚ฐ์ˆ , ๋Œ€์ž…, ๋น„๊ต, ๋…ผ๋ฆฌ, ์ฆ๊ฐ, ์‚ผํ•ญ ์—ฐ์‚ฐ์ž)

Shinjio 2023. 2. 17. 14:54

Java Pre-Training - 2023.02.17 ํ•™์Šต๋‚ด์šฉ

 

์ฐธ๊ณ ์ž๋ฃŒ

 

์ฝ”๋”ฉ๊ต์œก ํ‹ฐ์”จํ”ผ์Šค์ฟจ

4์ฐจ์‚ฐ์—…ํ˜๋ช…, ์ฝ”๋”ฉ๊ต์œก, ์†Œํ”„ํŠธ์›จ์–ด๊ต์œก, ์ฝ”๋”ฉ๊ธฐ์ดˆ, SW์ฝ”๋”ฉ, ๊ธฐ์ดˆ์ฝ”๋”ฉ๋ถ€ํ„ฐ ์ž๋ฐ” ํŒŒ์ด์ฌ ๋“ฑ

tcpschool.com

 

์—ฐ์‚ฐ์ž(operator)

์ž๋ฐ”์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ž ์ œ๊ณต

 

1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž(arithmetic operator)

2. ๋Œ€์ž… ์—ฐ์‚ฐ์ž(assignment operator)

3. ์ฆ๊ฐ ์—ฐ์‚ฐ์ž(increment and decrement operators)

4. ๋น„๊ต ์—ฐ์‚ฐ์ž(comparison operator)

5. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(logical operator)

6. ๋น„ํŠธ ์—ฐ์‚ฐ์ž(bitwise operator)

7. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž(ternary operator)

8. instanceof ์—ฐ์‚ฐ์ž

 

๏ผƒ ์‚ฐ์ˆ , ๋Œ€์ž…, ๋น„๊ต, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ๋‘ ๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ทจํ•˜๋Š” ์ดํ•ญ ์—ฐ์‚ฐ์ž, ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋Š” ํ•˜๋‚˜์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ทจํ•˜๋Š” ์ผํ•ญ ์—ฐ์‚ฐ์ž, ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” 3๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ทจํ•˜๋Š” ์‚ผํ•ญ ์—ฐ์‚ฐ์ž

 

์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜ ๊ธฐํ˜ธ
์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž +   -   *   /   %
๋Œ€์ž… ์—ฐ์‚ฐ์ž =   +=   -=   *=   /=   %=
๋น„๊ต ์—ฐ์‚ฐ์ž >   >=   <   <=   ==   !=
๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž not   and   or
์ฆ๊ฐ ์—ฐ์‚ฐ์ž ++   --
์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์กฐ๊ฑด์‹ ? ์‹คํ–‰๋ฌธ1(์ฐธ์ผ๋•Œ) : ์‹คํ–‰๋ฌธ2(๊ฑฐ์ง“์ผ๋•Œ)

 

์‚ฐ์ˆ ์—ฐ์‚ฐ์ž(arithmetic operator)

์‚ฌ์น™์—ฐ์‚ฐ์„ ๋‹ค๋ฃจ๋Š” ์—ฐ์‚ฐ์ž๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜

ํ”ผ์—ฐ์‚ฐ์ž๋“ค์˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ

 

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ์„ค๋ช…
+ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋”ํ•จ
- ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—์„œ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋บŒ
* ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ณฑํ•จ
/ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆ”
% ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ทธ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜

 

์‚ฐ์ˆ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ

 

์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„(operator precedence)์™€ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ(associativity)
์ˆ˜์‹ ๋‚ด์— ์—ฌ๋Ÿฌ ์—ฐ์‚ฐ์ž๊ฐ€ ํ•จ๊ป˜ ๋“ฑ์žฅํ•  ๋•Œ ์–ด๋Š ์—ฐ์‚ฐ์ž๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ๋  ๊ฒƒ์ธ๊ฐ€๋ฅผ ๊ฒฐ์ •
์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• : ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์—ฐ์‚ฐ์ž > ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ(์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ™์€ ์—ฐ์‚ฐ์ž์ผ ๊ฒฝ์šฐ)
์˜ˆ : ๊ด„ํ˜ธ() ⇒ ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ ⇒ ๋”ํ•˜๊ธฐ, ๋นผ๊ธฐ

 

๋Œ€์ž… ์—ฐ์‚ฐ์ž(assignment operator)

๋ณ€์ˆ˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ดํ•ญ ์—ฐ์‚ฐ์ž์ด๋ฉฐ, ํ”ผ์—ฐ์‚ฐ์ž๋“ค์˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ์€ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ

๋˜ํ•œ, ์ž๋ฐ”์—์„œ๋Š” ๋Œ€์ž… ์—ฐ์‚ฐ์ž์™€ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋งŒ๋“  ๋‹ค์–‘ํ•œ ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•จ

 

๋Œ€์ž… ์—ฐ์‚ฐ์ž ์„ค๋ช…
= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋Œ€์ž…
+= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋”ํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
-= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—์„œ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋บ€ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
*= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ณฑํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
/= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
%= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ทธ ๋‚˜๋จธ์ง€๋ฅผ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
&= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ๋น„ํŠธ AND ์—ฐ์‚ฐํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
|= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ๋น„ํŠธ OR ์—ฐ์‚ฐํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
^= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ๋น„ํŠธ XOR ์—ฐ์‚ฐํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
<<== ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋งŒํผ ์™ผ์ชฝ ์‹œํ”„ํŠธํ•œ ํ›„, ๊ทธ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
>>== ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋งŒํผ ๋ถ€ํ˜ธ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…
>>>= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋งŒํผ ๋ถ€ํ˜ธ์— ์ƒ๊ด€์—†์ด ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ ํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…

 

๋ณตํ•ฉ๋Œ€์ž…์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ

 

์ฆ๊ฐ์—ฐ์‚ฐ์ž(increment and decrement operators)

๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€ ํ˜น์€ ๊ฐ์†Œ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ

์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋Š” ํ•ด๋‹น ์—ฐ์‚ฐ์ž๊ฐ€ ํ”ผ์—ฐ์‚ฐ์ž์˜ ์–ด๋Š ์ชฝ์— ์œ„์น˜ํ•˜๋Š”๊ฐ€์— ๋”ฐ๋ผ ์—ฐ์‚ฐ์˜ ์ˆœ์„œ ๋ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง

์ฆ๊ฐ ์—ฐ์‚ฐ์ž ์„ค๋ช…
++x ๋จผ์ € ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚จ ํ›„์— ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ง„ํ–‰
x++ ๋จผ์ € ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜์„œ, ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚ด
--x ๋จผ์ € ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ๊ฐ์†Œ์‹œํ‚จ ํ›„์— ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ง„ํ–‰
x-- ๋จผ์ € ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜์„œ, ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ๊ฐ์†Œ์‹œํ‚ด

 

 

์ฆ๊ฐ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ

 

int   x   =   10;
int   y   =   x--   +   5   +   --x;

System.out.println("x   :   "   +   x   +   ",   y   :   "   +   y);

โ‘  x-- ๋Š” x-- + 5์—์„œ ๋ง์…ˆ ์—ฐ์‚ฐ์ž๋ฅผ ๋จผ์ € ์ˆ˜ํ–‰ => x-- + 5 = 15
โ‘ก x-- + 5 ๋ง์…ˆ ์—ฐ์‚ฐ ํ›„ x-- ๊ฐ์†Œ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ => x์˜ ๊ฐ’์€ 9
โ‘ข +   --x์—์„œ๋Š” --x๋ฅผ ๋จผ์ € ์ˆ˜ํ–‰ => x์˜ ๊ฐ’์€ 8
โ‘ฃ +   --x ์ˆ˜ํ–‰ ; 15 + 8 => 23
โ‘ค y์— ๋Œ€์ž…

๋”ฐ๋ผ์„œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š”
x   :   8,   y   :   23

 

๋น„๊ต ์—ฐ์‚ฐ์ž(relational operator)

๋ถ€๋“ฑํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฐธ์ธ์ง€ ๊ฑฐ์ง“์ธ์ง€ boolean์œผ๋กœ ๊ฒฐ๊ด๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ์—ฐ์‚ฐ์ž

 

๋น„๊ต ์—ฐ์‚ฐ์ž ์„ค๋ช…
== ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
!= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
> ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ํฌ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
>= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
< ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜
<= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜

 

๋น„๊ต ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ

 

๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž(logical operator)

์ฃผ์–ด์ง„ ๋…ผ๋ฆฌ์‹์„ ํŒ๋‹จํ•˜์—ฌ, ์ฐธ๊ณผ ๊ฑฐ์ง“์„ ๊ฒฐ์ •ํ•˜๋Š” ์—ฐ์‚ฐ์ž

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์„ค๋ช…
&& ๋…ผ๋ฆฌ์‹์ด ๋ชจ๋‘ ์ฐธ์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ (๋…ผ๋ฆฌ AND ์—ฐ์‚ฐ)
|| ๋…ผ๋ฆฌ์‹ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด ์ฐธ ๋ฐ˜ํ™˜ (๋…ผ๋ฆฌ OR ์—ฐ์‚ฐ)
! ๋…ผ๋ฆฌ์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฉด ๊ฑฐ์ง“์„, ๊ฑฐ์ง“์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ (๋…ผ๋ฆฌ NOT ์—ฐ์‚ฐ)

 

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ

 

๋น„ํŠธ ์—ฐ์‚ฐ์ž(bitwise operator)

๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ๋น„ํŠธ(bit) ๋‹จ์œ„๋กœ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž

๊ธฐ๋ณธ ์ž๋ฃŒํ˜• char, int์™€ ๊ฐ™์€ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋ณด๋‹ค ๋” ์ž‘์€ ๋น„ํŠธ ๋‹จ์œ„๋ฅผ ๋‹ค๋ฃธ. ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ ๋˜๋Š” ์ •์ˆ˜ํ˜• ๊ฐ’์„ ์ด๋ฃจ๋Š” ๋ชจ๋“  ๋น„ํŠธ๋“ค์— ๋Œ€ํ•ด์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰(์‹ค์ˆ˜๋‚˜ ํฌ์ธํ„ฐ ๋“ฑ์€ ๋น„ํŠธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Œ)

 

๋น„ํŠธ(bit)
๋ฐ”์ดํŠธ ๋‹จ์œ„๋ณด๋‹ค ๋” ์ž‘์€ ๋‹จ์œ„๋กœ 2์ง„์ˆ˜๋ฅผ ์ €์žฅ. ์ฆ‰ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋‹จ์œ„์ด๋ฉฐ 0๊ณผ 1์„ ๋‚˜ํƒ€๋ƒ„

 

๋น„ํŠธ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

ํ”ํžˆ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š์ง€๋งŒ ๋น„ํŠธ ์—ฐ์‚ฐ์€ ์ปดํ“จํ„ฐ๊ฐ€ ๊ธฐ์กด ์ž๋ฃŒํ˜•(int, char ๋“ฑ)์„ ๋น„ํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฏธ๋ฆฌ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์ธ ์—ฐ์‚ฐ์— ๋น„ํ•ด ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์ด ํšจ์œจ์ . ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ์••์ถ•, ์•”ํ˜ธํ™”, ๋‚ฎ์€ ์ˆ˜์ค€์˜ ํ•˜๋“œ์›จ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ฐ™์€ ์ž‘์—…์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ์ด๋Ÿฌํ•œ ์žฅ์ ์œผ๋กœ MCU์—์„œ ์ž‘๋™ํ•˜๋Š” ํŽŒ์›จ์–ด ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ , ๋น…๋ฐ์ดํ„ฐ์— ์ ์šฉํ•˜๋ฉด ์†๋„์—์„œ ์šฐ์œ„๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ. ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•˜๋ฉฐ, ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ C, C++, ์–ด์…ˆ๋ธ”๋ฆฌ์–ด์™€ ๊ฐ™์€ ํ•˜์œ„ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋จ.

 

๋น„ํŠธ ์—ฐ์‚ฐ์ž ์„ค๋ช…
& ๋Œ€์‘๋˜๋Š” ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1์ด๋ฉด 1์„ ๋ฐ˜ํ™˜ (๋น„ํŠธ AND ์—ฐ์‚ฐ)
| ๋Œ€์‘๋˜๋Š” ๋น„ํŠธ ์ค‘์— ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด 1์„ ๋ฐ˜ํ™˜ (๋น„ํŠธ OR ์—ฐ์‚ฐ)
^ ๋Œ€์‘๋˜๋Š” ๋น„ํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉด 1์„ ๋ฐ˜ํ™˜(๋น„ํŠธ XOR ์—ฐ์‚ฐ)
~ ๋น„ํŠธ๋ฅผ 1์ด๋ฉด 0์œผ๋กœ, 0์ด๋ฉด 1๋กœ ๋ฐ˜์ „์‹œํ‚ด (๋น„ํŠธ NOT ์—ฐ์‚ฐ, 1์˜ ๋ณด์ˆ˜)
<< ๋ช…์‹œ๋œ ์ˆ˜๋งŒํผ ๋น„ํŠธ๋“ค์„ ์ „๋ถ€ ์™ผ์ชฝ์œผ๋กœ ์ด๋™(left shift ์—ฐ์‚ฐ)
>> ๋ถ€ํ˜ธ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ง€์ •ํ•œ ์ˆ˜๋งŒํผ ๋น„ํŠธ๋ฅผ ์ „๋ถ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™(right shift ์—ฐ์‚ฐ)
>>> ์ง€์ •ํ•œ ์ˆ˜๋งŒํผ ๋น„ํŠธ๋ฅผ ์ „๋ถ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๋ฉฐ, ์ƒˆ๋กœ์šด ๋น„ํŠธ๋Š” ์ „๋ถ€ 0์ด ๋จ


์‚ผํ•ญ์—ฐ์‚ฐ์ž(ternary operator)

๊ฐ„๋‹จํ•œ ์ œ์–ด ์ฒ˜๋ฆฌ

(์กฐ๊ฑด๋ฌธ) ? (์‹คํ–‰๋ฌธ1) : (์‹คํ–‰๋ฌธ2)

์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋ฌธ1 ์‹คํ–‰, ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋ฌธ2 ์‹คํ–‰

 

์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ

 

instanceof ์—ฐ์‚ฐ์ž

์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ์ธ์Šคํ„ด์Šค์˜ ์‹ค์ œ ํƒ€์ž…์„ ๋ฐ˜ํ™˜

์ฆ‰, ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€๋ฅผ ํŒ๋ณ„ํ•ด ์ฃผ๋Š” ์—ญํ• 

 

์ธ์Šคํ„ด์Šค์ด๋ฆ„ instanceof ํด๋ž˜์Šค๋˜๋Š”์ธํ„ฐํŽ˜์ด์Šค์ด๋ฆ„

 

instanceof ์—ฐ์‚ฐ์ž๋Š” ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์ธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์ธ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜. ์ด์— ๋Œ€ํ•œ ์ดํ•ด๋Š” ํด๋ž˜์Šค์™€ ์ƒ์†์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ด ์ดํ•ด๊ฐ€ ํ•„์š”