Post

[C] ์—ฐ์‚ฐ์ž

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

์—ฐ์‚ฐ์ž์—๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ์‚ฐ์ˆ ยท๋ณตํ•ฉ ๋Œ€์ž…ยท์ฆ๊ฐยท๋น„๊ตยท๋…ผ๋ฆฌยท์‚ผํ•ญยท๋น„ํŠธ ์—ฐ์‚ฐ์ž ๋“ฑ. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด๋“ค์„ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•œ๋‹ค.

๋ถ„๋ฅ˜์—ฐ์‚ฐ์ž
์‚ฐ์ˆ + - * / %
๋ณตํ•ฉ ๋Œ€์ž…+= -= *= /= %=
์ฆ๊ฐ++ --
๋น„๊ต> < >= <= == !=
๋…ผ๋ฆฌ&& \|\| !
์‚ผํ•ญ? :
๋น„ํŠธ& \| ^ ~ << >>

1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

๋ง์…ˆยท๋บ„์…ˆยท๊ณฑ์…ˆยท๋‚˜๋ˆ—์…ˆ์€ ์ต์ˆ™ํ•˜๋‹ค. ๋ˆˆ์—ฌ๊ฒจ๋ณผ ๊ฒƒ์€ %(๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž)๋‹ค.

1
5 % 2   // 5๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ โ†’ 1

Desktop View

Desktop View

5 % 2์˜ ๊ฒฐ๊ณผ๋กœ 1์ด ์ถœ๋ ฅ๋œ๋‹ค.


2. ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž

๋Œ€๋ถ€๋ถ„์˜ ์ดํ•ญ์—ฐ์‚ฐ์ž๋Š” ๋ณตํ•ฉ ๋Œ€์ž… ํ˜•ํƒœ๋กœ ์ค„์—ฌ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

1
2
3
int n = 10;
n = n + 3;   // ๊ธฐ์กด ๊ฐ’์— 3์„ ๋”ํ•จ
n += 3;      // โ†‘ ์œ„์™€ ๋™์ผ. ์ž๊ธฐ ์ž์‹ ์—๊ฒŒ ๋”ํ•ด ๋Œ€์ž…

Desktop View

Desktop View

n์ด 0์—์„œ 3์”ฉ ๋ˆ„์ ๋˜์–ด ์ž˜ ์ถœ๋ ฅ๋๋‹ค.


3. ์ฆ๊ฐ ์—ฐ์‚ฐ์ž (++, --)

๊ฐ๊ฐ 1์”ฉ ์ฆ๊ฐ€, 1์”ฉ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. n++์ด๋ฉด ๊ธฐ์กด n ๊ฐ’์— 1์„ ๋”ํ•œ๋‹ค.

Desktop View

Desktop View

์ฃผ์˜ํ•  ์ ์€ n++๊ณผ ++n์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹คํ•ญ ์—ฐ์‚ฐ์‹์—์„œ ์ฆ๊ฐ์ด ์ˆ˜ํ–‰๋˜๋Š” ์‹œ์ ์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

ํ‘œ๊ธฐ๋ฐฉ์‹์‹œ์ 
n++postfix(ํ›„์œ„)๊ธฐ์กด ์—ฐ์‚ฐ ์งํ›„ ์ฆ๊ฐ ์ˆ˜ํ–‰
++nprefix(์ „์œ„)๊ธฐ์กด ์—ฐ์‚ฐ ์ง์ „ ์ฆ๊ฐ ์ˆ˜ํ–‰

โš ๏ธ ๊ฐ€๊ธ‰์  ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋Š” ๋ณต์žกํ•œ ์—ฐ์‚ฐ์‹ โ€˜์•ˆโ€™์—์„œ ์„ž์–ด ์“ฐ๋Š” ๊ฒƒ์„ ํ”ผํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค. ์ฝ”๋“œ๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๊ณ  ๋ฒ„๊ทธ์˜ ์›์ธ์ด ๋œ๋‹ค.


4. ๋น„๊ต ์—ฐ์‚ฐ์ž

๊ฒฐ๊ณผ๊ฐ€ โ€˜๊ฑฐ์ง“โ€™์ด๋ฉด 0, โ€˜์ฐธโ€™์ด๋ฉด ๋ณดํ†ต 1์ด๋‹ค. (๋‹จ, 0์ด ์•„๋‹Œ ๋ชจ๋“  ์ˆซ์ž๋Š” ์ฐธ์œผ๋กœ ์ทจ๊ธ‰)

Desktop View

Desktop View

์ •์ˆ˜ ์„œ์‹ ์ง€์ •์ž๋กœ ๋…ผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด 1๊ณผ 0์œผ๋กœ ๋‚˜์˜จ๋‹ค.


5. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž (&&, ||, !)

๋‹จ์ˆœ ์ˆซ์ž ๊ณ„์‚ฐ์ด ์•„๋‹ˆ๋ผ ๋…ผ๋ฆฌ์˜ ์ฐธ/๊ฑฐ์ง“์„ ๊ฐ€๋ฅธ๋‹ค.

์—ฐ์‚ฐ์ž์ด๋ฆ„์ฐธ์ด ๋˜๋Š” ์กฐ๊ฑด
&&AND (๋…ผ๋ฆฌ๊ณฑ)์–‘์ชฝ์ด ๋‘˜ ๋‹ค ์ฐธ์ผ ๋•Œ๋งŒ
\|\|OR (๋…ผ๋ฆฌํ•ฉ)๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์ฐธ์ด์–ด๋„
!NOT์ฐธโ†”๊ฑฐ์ง“ ๋ฐ˜์ „

์ง„๋ฆฌํ‘œ:

1
2
3
4
5
 A && B                A || B              !A
T && T = 1            T || T = 1          !T = 0
T && F = 0            T || F = 1          !F = 1
F && T = 0            F || T = 1
F && F = 0            F || F = 0

Desktop View

Desktop View

result ๊ฐ’์ด ๋…ผ๋ฆฌ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ 1๊ณผ 0์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

NOT ์—ฐ์‚ฐ์ž(!) โ€” 10 == 10์€ ์ฐธ(1)์ด์ง€๋งŒ, !(10 == 10)์€ ๊ทธ ๋ฐ˜๋Œ€์ธ 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

Desktop View

Desktop View


6. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž

if ~ else๋ฅผ ํ•œ ์ค„๋กœ ์ค„์ธ ํ˜•ํƒœ๋‹ค.

1
( ์กฐ๊ฑด์‹ ) ? (์ฐธ์ธ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ) : (๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ)

๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ ์ž๋ฆฌ์— ๋˜ ๋‹ค๋ฅธ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์–ด ๋ถ™์—ฌ ์—ฐ์‡„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Desktop View

Desktop View


7. ๋น„ํŠธ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ๊ณผ ๋‹ฌ๋ฆฌ ๊ฐ’์„ bit ๋‹จ์œ„๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. ์ปดํ“จํ„ฐ๋Š” ๋น„ํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒŒ ์‚ฐ์ˆ  ์—ฐ์‚ฐ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

์—ฐ์‚ฐ์ž์ด๋ฆ„๋™์ž‘
&AND๋‘ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋‘˜ ๋‹ค 1์ผ ๋•Œ๋งŒ 1
\|OR๋‘ ์ž๋ฆฟ์ˆ˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด 1
^XOR๋‘ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฉด 1, ๊ฐ™์œผ๋ฉด 0
~NOT๋น„ํŠธ ๋ฐ˜์ „ (0โ†”1)
<< >>SHIFT๋น„ํŠธ๋ฅผ ์ขŒ/์šฐ๋กœ ์ด๋™

& ์—ฐ์‚ฐ์ž

๊ฐ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋‘˜ ๋‹ค 1์ผ ๋•Œ๋งŒ 1. ๊ทธ๋ž˜์„œ ๊ฒฐ๊ณผ๊ฐ€ ๋Œ€์ฒด๋กœ ์ž‘์•„์ง„๋‹ค.

Desktop View

Desktop View

| ์—ฐ์‚ฐ์ž

ํ•œ ์ž๋ฆฟ์ˆ˜๋ผ๋„ 1์ด๋ฉด 1. ๊ทธ๋ž˜์„œ ๊ฒฐ๊ณผ๊ฐ€ ๋Œ€์ฒด๋กœ ์ปค์ง„๋‹ค.

Desktop View

Desktop View

^ ์—ฐ์‚ฐ์ž (XOR, ๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ)

๋‘˜์ด ๊ฐ™์œผ๋ฉด 0, ๋‹ค๋ฅด๋ฉด 1.

Desktop View

Desktop View

~ ์—ฐ์‚ฐ์ž (NOT, ๋น„ํŠธ ๋ฐ˜์ „)

1 โ†” 0์œผ๋กœ ๋ฐ˜์ „. ๊ทธ๋Ÿฐ๋ฐ ~120์ด ์™œ -121์ด ๋ ๊นŒ? ์šฉ๋Ÿ‰(๋น„ํŠธ ์ˆ˜)์„ ๋ด์•ผ ํ•œ๋‹ค.

1
2
3
4
5
์‹ญ์ง„์ˆ˜ 120์„ 4byte(32bit)๋กœ ํ‘œํ˜„:
  0000 0000 0000 0000 0000 0000 0111 1000   (120)

๋น„ํŠธ ๋ฐ˜์ „(~) ์ ์šฉ:
  1111 1111 1111 1111 1111 1111 1000 0111   (= -121)

๋งจ ์•ž ๋น„ํŠธ๊ฐ€ 1์ด ๋˜๋ฉด์„œ(๋ถ€ํ˜ธ ๋น„ํŠธ) ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์ฒ˜๋Ÿผ ์Œ์ˆ˜๊ฐ€ ๋œ ๊ฒƒ์ด๋‹ค.

Desktop View

Desktop View

Shift ์—ฐ์‚ฐ์ž (<<, >>)

๋น„ํŠธ๋ฅผ ์ขŒ/์šฐ๋กœ ์ด๋™์‹œํ‚จ๋‹ค.

1
num1 << 2;   // ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์œผ๋กœ 2์นธ ์ด๋™

Desktop View

Desktop View

๐Ÿ’ก << n์€ ๊ฐ’์„ 2^n๋ฐฐ, >> n์€ 2^n์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋‚ธ๋‹ค. ๊ณฑ์…ˆ/๋‚˜๋ˆ—์…ˆ์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ํŠธ๋ฆญ์œผ๋กœ๋„ ์“ฐ์ธ๋‹ค.


๐Ÿ“ ์ •๋ฆฌ

1
2
3
4
5
6
7
8
์—ฐ์‚ฐ์ž
โ”œโ”€ ์‚ฐ์ˆ       + - * / %(๋‚˜๋จธ์ง€)
โ”œโ”€ ๋ณตํ•ฉ ๋Œ€์ž… n += 3  โ‰ก  n = n + 3
โ”œโ”€ ์ฆ๊ฐ      ++ / --   (n++ ํ›„์œ„ ยท ++n ์ „์œ„)
โ”œโ”€ ๋น„๊ต      ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ=1, ๊ฑฐ์ง“=0
โ”œโ”€ ๋…ผ๋ฆฌ      && (๋‘˜ ๋‹ค ์ฐธ) ยท || (ํ•˜๋‚˜๋งŒ ์ฐธ) ยท ! (๋ฐ˜์ „)
โ”œโ”€ ์‚ผํ•ญ      ์กฐ๊ฑด ? ์ฐธ : ๊ฑฐ์ง“
โ””โ”€ ๋น„ํŠธ      & | ^ ~ << >>  (bit ๋‹จ์œ„, ๋งค์šฐ ๋น ๋ฆ„)

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์—ฐ์‚ฐ์ž๋ฅผ ์ข€ ๊ธธ๊ฒŒ ์ •๋ฆฌํ•ด๋ดค๋‹ค. ํŠนํžˆ ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” ์ฒ˜์Œ์—” ๋‚ฏ์„ค์ง€๋งŒ, ์›๋ฆฌ๋ฅผ ์•Œ๊ณ  ๋‚˜๋ฉด ์ •๋ง ์žฌ๋ฏธ์žˆ๋Š” ์˜์—ญ์ด๋‹ค.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.