[C] ์ฐ์ฐ์
๐ ๋ค์ด๊ฐ๋ฉฐ
์ฐ์ฐ์์๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋ค. ์ฐ์ ยท๋ณตํฉ ๋์ ยท์ฆ๊ฐยท๋น๊ตยท๋ ผ๋ฆฌยท์ผํญยท๋นํธ ์ฐ์ฐ์ ๋ฑ. ์ด๋ฒ ๊ธ์์๋ ์ด๋ค์ ํ๋์ฉ ์ ๋ฆฌํ๋ค.
| ๋ถ๋ฅ | ์ฐ์ฐ์ |
|---|---|
| ์ฐ์ | + - * / % |
| ๋ณตํฉ ๋์ | += -= *= /= %= |
| ์ฆ๊ฐ | ++ -- |
| ๋น๊ต | > < >= <= == != |
| ๋ ผ๋ฆฌ | && \|\| ! |
| ์ผํญ | ? : |
| ๋นํธ | & \| ^ ~ << >> |
1. ์ฐ์ ์ฐ์ฐ์
๋ง์
ยท๋บ์
ยท๊ณฑ์
ยท๋๋์
์ ์ต์ํ๋ค. ๋์ฌ๊ฒจ๋ณผ ๊ฒ์ %(๋๋จธ์ง ์ฐ์ฐ์)๋ค.
1
5 % 2 // 5๋ฅผ 2๋ก ๋๋ ๋๋จธ์ง โ 1
5 % 2์ ๊ฒฐ๊ณผ๋ก 1์ด ์ถ๋ ฅ๋๋ค.
2. ๋ณตํฉ ๋์ ์ฐ์ฐ์
๋๋ถ๋ถ์ ์ดํญ์ฐ์ฐ์๋ ๋ณตํฉ ๋์ ํํ๋ก ์ค์ฌ ์ธ ์ ์๋ค.
1
2
3
int n = 10;
n = n + 3; // ๊ธฐ์กด ๊ฐ์ 3์ ๋ํจ
n += 3; // โ ์์ ๋์ผ. ์๊ธฐ ์์ ์๊ฒ ๋ํด ๋์
n์ด 0์์ 3์ฉ ๋์ ๋์ด ์ ์ถ๋ ฅ๋๋ค.
3. ์ฆ๊ฐ ์ฐ์ฐ์ (++, --)
๊ฐ๊ฐ 1์ฉ ์ฆ๊ฐ, 1์ฉ ๊ฐ์์ํจ๋ค. n++์ด๋ฉด ๊ธฐ์กด n ๊ฐ์ 1์ ๋ํ๋ค.
์ฃผ์ํ ์ ์ n++๊ณผ ++n์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ด๋ค. ๋คํญ ์ฐ์ฐ์์์ ์ฆ๊ฐ์ด ์ํ๋๋ ์์ ์ ์ฐจ์ด๊ฐ ์๋ค.
| ํ๊ธฐ | ๋ฐฉ์ | ์์ |
|---|---|---|
n++ | postfix(ํ์) | ๊ธฐ์กด ์ฐ์ฐ ์งํ ์ฆ๊ฐ ์ํ |
++n | prefix(์ ์) | ๊ธฐ์กด ์ฐ์ฐ ์ง์ ์ฆ๊ฐ ์ํ |
โ ๏ธ ๊ฐ๊ธ์ ์ฆ๊ฐ ์ฐ์ฐ์๋ ๋ณต์กํ ์ฐ์ฐ์ โ์โ์์ ์์ด ์ฐ๋ ๊ฒ์ ํผํ๋ ๊ฒ ์ข๋ค. ์ฝ๋๊ฐ ํท๊ฐ๋ฆฌ๊ณ ๋ฒ๊ทธ์ ์์ธ์ด ๋๋ค.
4. ๋น๊ต ์ฐ์ฐ์
๊ฒฐ๊ณผ๊ฐ โ๊ฑฐ์งโ์ด๋ฉด 0, โ์ฐธโ์ด๋ฉด ๋ณดํต 1์ด๋ค. (๋จ, 0์ด ์๋ ๋ชจ๋ ์ซ์๋ ์ฐธ์ผ๋ก ์ทจ๊ธ)
์ ์ ์์ ์ง์ ์๋ก ๋
ผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ฉด 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
result ๊ฐ์ด ๋
ผ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ 1๊ณผ 0์ผ๋ก ์ถ๋ ฅ๋๋ค.
NOT ์ฐ์ฐ์(!) โ 10 == 10์ ์ฐธ(1)์ด์ง๋ง, !(10 == 10)์ ๊ทธ ๋ฐ๋์ธ 0์ ์ถ๋ ฅํ๋ค.
6. ์ผํญ ์ฐ์ฐ์
if ~ else๋ฅผ ํ ์ค๋ก ์ค์ธ ํํ๋ค.
1
( ์กฐ๊ฑด์ ) ? (์ฐธ์ธ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ) : (๊ฑฐ์ง์ธ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ)
๊ฑฐ์ง์ธ ๊ฒฝ์ฐ ์๋ฆฌ์ ๋ ๋ค๋ฅธ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ด์ด ๋ถ์ฌ ์ฐ์ํ ์๋ ์๋ค.
7. ๋นํธ ์ฐ์ฐ์
๋ ผ๋ฆฌ ์ฐ์ฐ๊ณผ ๋ฌ๋ฆฌ ๊ฐ์ bit ๋จ์๋ก ๊ณ์ฐํ๋ค. ์ปดํจํฐ๋ ๋นํธ๋ฅผ ๋ค๋ฃจ๋ ๊ฒ ์ฐ์ ์ฐ์ฐ๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๋ค.
| ์ฐ์ฐ์ | ์ด๋ฆ | ๋์ |
|---|---|---|
& | AND | ๋ ์๋ฆฟ์๊ฐ ๋ ๋ค 1์ผ ๋๋ง 1 |
\| | OR | ๋ ์๋ฆฟ์ ์ค ํ๋๋ผ๋ 1์ด๋ฉด 1 |
^ | XOR | ๋ ์๋ฆฟ์๊ฐ ๋ค๋ฅด๋ฉด 1, ๊ฐ์ผ๋ฉด 0 |
~ | NOT | ๋นํธ ๋ฐ์ (0โ1) |
<< >> | SHIFT | ๋นํธ๋ฅผ ์ข/์ฐ๋ก ์ด๋ |
& ์ฐ์ฐ์
๊ฐ ์๋ฆฟ์๊ฐ ๋ ๋ค 1์ผ ๋๋ง 1. ๊ทธ๋์ ๊ฒฐ๊ณผ๊ฐ ๋์ฒด๋ก ์์์ง๋ค.
| ์ฐ์ฐ์
ํ ์๋ฆฟ์๋ผ๋ 1์ด๋ฉด 1. ๊ทธ๋์ ๊ฒฐ๊ณผ๊ฐ ๋์ฒด๋ก ์ปค์ง๋ค.
^ ์ฐ์ฐ์ (XOR, ๋ฐฐํ์ ๋ ผ๋ฆฌํฉ)
๋์ด ๊ฐ์ผ๋ฉด 0, ๋ค๋ฅด๋ฉด 1.
~ ์ฐ์ฐ์ (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์ด ๋๋ฉด์(๋ถํธ ๋นํธ) ์ค๋ฒํ๋ก์ฐ์ฒ๋ผ ์์๊ฐ ๋ ๊ฒ์ด๋ค.
Shift ์ฐ์ฐ์ (<<, >>)
๋นํธ๋ฅผ ์ข/์ฐ๋ก ์ด๋์ํจ๋ค.
1
num1 << 2; // ๋นํธ๋ฅผ ์ผ์ชฝ์ผ๋ก 2์นธ ์ด๋
๐ก
<< n์ ๊ฐ์2^n๋ฐฐ,>> n์2^n์ผ๋ก ๋๋ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ธ๋ค. ๊ณฑ์ /๋๋์ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ํธ๋ฆญ์ผ๋ก๋ ์ฐ์ธ๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
5
6
7
8
์ฐ์ฐ์
โโ ์ฐ์ + - * / %(๋๋จธ์ง)
โโ ๋ณตํฉ ๋์
n += 3 โก n = n + 3
โโ ์ฆ๊ฐ ++ / -- (n++ ํ์ ยท ++n ์ ์)
โโ ๋น๊ต ๊ฒฐ๊ณผ๊ฐ ์ฐธ=1, ๊ฑฐ์ง=0
โโ ๋
ผ๋ฆฌ && (๋ ๋ค ์ฐธ) ยท || (ํ๋๋ง ์ฐธ) ยท ! (๋ฐ์ )
โโ ์ผํญ ์กฐ๊ฑด ? ์ฐธ : ๊ฑฐ์ง
โโ ๋นํธ & | ^ ~ << >> (bit ๋จ์, ๋งค์ฐ ๋น ๋ฆ)
์ด๋ฒ ์๊ฐ์๋ ์ฐ์ฐ์๋ฅผ ์ข ๊ธธ๊ฒ ์ ๋ฆฌํด๋ดค๋ค. ํนํ ๋นํธ ์ฐ์ฐ์๋ ์ฒ์์ ๋ฏ์ค์ง๋ง, ์๋ฆฌ๋ฅผ ์๊ณ ๋๋ฉด ์ ๋ง ์ฌ๋ฏธ์๋ ์์ญ์ด๋ค.
























Comments powered by Disqus.