๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“— Book/์ž๋ฐ”์˜ ์ •์„

3-5์žฅ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

by hyeon-z 2023. 3. 14.

 

๐Ÿ’ก ๋‘˜ ์ด์ƒ์˜ ์กฐ๊ฑด์„ ‘๊ทธ๋ฆฌ๊ณ (AND)’๋‚˜ ‘๋˜๋Š”(OR)’์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค.

 

1. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž &&  || !

&&: ํ”ผ์—ฐ์‚ฐ์ž ์–‘์ชฝ ๋ชจ๋‘ true์ด์–ด์•ผ true๋กœ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š”๋‹ค.

||: ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ์–ด๋А ํ•œ์ชฝ์— true์ด๋ฉด true๋กœ ๊ฒฐ๊ณผ๋กœ ์–ป๋Š”๋‹ค.

 

์˜ˆ์ œ

1. x๋Š” 10๋ณด๋‹ค ํฌ๊ณ , 20๋ณด๋‹ค ์ž‘๋‹ค.

10 < x && x < 20

 

2. i๋Š” 2์˜ ๋ฐฐ์ˆ˜ ๋˜๋Š” 3์˜ ๋ฐฐ์ˆ˜์ด๋‹ค.

i % 2 == 0 || i % 3 == 0

 

3. i๋Š” 2์˜ ๋ฐฐ์ˆ˜ ๋˜๋Š” 3์˜ ๋ฐฐ์ˆ˜์ง€๋งŒ 6์˜ ๋ฐฐ์ˆ˜๋Š” ์•„๋‹ˆ๋‹ค.

(i % 2 == 0 || i % 3 == 0) && i % 6 != 0

์ฃผ์˜: ‘&&’๊ฐ€ ‘| | ’๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค.

 

4. ๋ฌธ์ž ch๋Š” ์ˆซ์ž(’ 0’ ~ ‘9’)์ด๋‹ค.

'0' <= ch && ch <= '9'

 

ํšจ์œจ์ ์ธ ์—ฐ์‚ฐ

 

- OR์—ฐ์‚ฐ( || )

๋‘ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ์–ด๋А ํ•œ์ชฝ๋งŒ ‘์ฐธ’์ด์–ด๋„ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ‘์ฐธ’์ด๋ฏ€๋กœ

์ขŒ์ธก ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ true์ด๋ฉด, ์šฐ์ธก ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์€ ํ‰๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

- AND์—ฐ์‚ฐ( && )

๋‘ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ์–ด๋А ํ•œ ์ชฝ๋งŒ ‘๊ฑฐ์ง“’์ด์–ด๋„ ์ „์ฒด ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ‘๊ฑฐ์ง“’์ด๋ฏ€๋กœ

์ขŒ์ธก ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ false์ด๋ฉด, ์šฐ์ธก ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์€ ํ‰๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

⇒ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์€ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํšจ์œจ์ ์ด๋‹ค!

 

๋…ผ๋ฆฌ ๋ถ€์ • ์—ฐ์‚ฐ์ž !

 

๐Ÿ’ก ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ true์ด๋ฉด false๋ฅผ, false์ด๋ฉด true๋ฅผ ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ex) ๋ฌธ์ž ch๋Š” ์†Œ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋‹ค.

ch < 'a' || ch > 'z'

 

๋…ผ๋ฆฌ ๋ถ€์ • ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋ฐ”๊ฟ”๋ณด์ž.

! ('a' <= ch && ch <= 'z')

 

ex)

bolean b = true;
System.out.println(!!b);  //  true

๋‹จํ•ญ ์—ฐ์‚ฐ์ž์˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ ์˜ค๋ฅธ์ชฝ → ์™ผ์ชฝ

!! b
→!! true
→ ! false
→ true

 

2. ๋น„ํŠธ ์—ฐ์‚ฐ์ž & I ^ ~ << >>

| (OR์—ฐ์‚ฐ์ž): ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•œ์ชฝ์˜ ๊ฐ’์ด 1์ด๋ฉด, 1์„ ๊ฒฐ๊ณผ๋กœ ์–ป๋Š”๋‹ค. ๊ทธ ์™ธ์—๋Š” 0์„ ์–ป๋Š”๋‹ค.

& (AND์—ฐ์‚ฐ์ž): ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ์–‘์ชฝ ๋ชจ๋‘ 1์ด์–ด์•ผ๋งŒ, 1์„ ๊ฒฐ๊ณผ๋กœ ์–ป๋Š”๋‹ค. ๊ทธ ์™ธ์—๋Š” 0์„ ์–ป๋Š”๋‹ค.

^ (XOR์—ฐ์‚ฐ์ž): ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ์„œ๋กœ ๋‹ค๋ฅผ ๋•Œ๋งŒ, 1์„ ๊ฒฐ๊ณผ๋กœ ์–ป๋Š”๋‹ค. ๊ทธ ์™ธ์—๋Š” 0์„ ์–ป๋Š”๋‹ค.

 

| (OR์—ฐ์‚ฐ์ž)

ํŠน์ • ๋น„ํŠธ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉ

0xAB์˜ ๋งˆ์ง€๋ง‰ ๋น„ํŠธ๋ฅผ 'F'๋กœ ๋ณ€๊ฒฝ

 

& (AND์—ฐ์‚ฐ์ž)

ํŠน์ • ๋น„ํŠธ์˜ ๊ฐ’์„ ๋ฝ‘์•„๋‚ผ ๋•Œ ์‚ฌ์šฉ

ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋งˆ์ง€๋ง‰ 4bit๊ฐ€ ์–ด๋–ค ๊ฐ’์ธ์ง€ ์•Œ์•„๋‚ด๊ธฐ

 

^ (XOR์—ฐ์‚ฐ์ž)

XOR์—ฐ์‚ฐ์„ 2๋ฒˆ ํ•˜๋ฉด ์›๋ž˜์˜ ๊ฐ’์œผ๋กœ ๋Œ์•„์˜จ๋‹ค. ๊ฐ„๋‹จํ•œ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ

ํ˜„์žฌ๋Š” ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด 2์ง„์ˆ˜๋ฅผ 8bit๋กœ ํ‘œํ˜„ํ•˜์˜€์ง€๋งŒ ๋น„ํŠธ ์—ฐ์‚ฐ์—์„œ๋„ ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์„ ์ผ์น˜์‹œํ‚ค๋Š” ‘์‚ฐ์ˆ  ๋ณ€ํ™˜’์ด ์ผ์–ด๋‚˜์„œ int๋ณด๋‹ค ์ž‘์€ ๋‹จ์œ„์˜ ๊ฒฝ์šฐ intํ˜•์œผ๋กœ ์—ฐ์‚ฐ์ด ์‹คํ–‰๋˜๋ฏ€๋กœ 32bit๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค.

 

๋น„ํŠธ ์ „ํ™˜ ์—ฐ์‚ฐ์ž ~

 

๐Ÿ’ก ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ–ˆ์„ ๋•Œ, 0์€ 1๋กœ, 1์€ 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค.

 

- 1์˜ ๋ณด์ˆ˜ ์—ฐ์‚ฐ์ž

 

- ์Œ์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

โ“์–‘์˜ ์ •์ˆ˜ P๊ฐ€ ์žˆ์„ ๋•Œ, P์— ๋Œ€ํ•œ ์Œ์˜ ์ •์ˆ˜๋ฅผ ์–ป์œผ๋ ค๋ฉด?

์–‘์ˆ˜์˜ 1์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•œ ํ›„ +1์„ ํ•œ๋‹ค.

⇒ 1์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋น„ํŠธ ์ „ํ™˜ ์—ฐ์‚ฐ์ž(~) ์‚ฌ์šฉ

~p + 1

* ์—ฐ์‚ฐ ํƒ€์ž…์ด byte๊ฐ€ ์•„๋‹ˆ๋ผ int๋ผ๋Š” ๊ฒƒ ์ฃผ์˜!

 

์‰ฌํ”„ํŠธ ์—ฐ์‚ฐ์ž << >>

 

1. <<

 

 

2. >>

์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ ๋นˆ์ž๋ฆฌ๋ฅผ 1๋กœ ์ฑ„์šด๋‹ค.

์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์–‘์ˆ˜์ธ ๊ฒฝ์šฐ ๋นˆ์ž๋ฆฌ๋ฅผ 0์œผ๋กœ ์ฑ„์šด๋‹ค.

 

์‰ฌํ”„ํŠธ ์—ฐ์‚ฐ์ž์˜ ๊ทœ์น™

xใ€ˆใ€ˆ n ๋˜๋Š” xใ€‰ใ€‰n์—์„œ, n์˜ ๊ฐ’์ด ์ž๋ฃŒํ˜•์˜ bit ์ˆ˜ ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ

์ž๋ฃŒํ˜•์˜ bit์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋งŒํผ๋งŒ ์ด๋™ํ•œ๋‹ค.

 

์˜ˆ์‹œ

int ํƒ€์ž…์€ 4byte(=32bit)

8 >> 32

์ž๋ฆฌ ์ˆ˜๋ฅผ 32๋ฒˆ ๋ฐ”๊พธ๋ฉด ๊ฒฐ๊ตญ ์ œ์ž๋ฆฌ๋กœ ๋Œ์•„์™€์„œ ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

8 >> 34

34๋ฅผ 32๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€์ธ 2๋งŒํผ๋งŒ ์ด๋™ํ•˜๋Š” 8 >> 2๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

* n์€ ์ •์ˆ˜๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ, ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜๋กœ ์ž๋™ ๋ณ€ํ™˜๋œ๋‹ค.

 

 

Reference

์ž๋ฐ”์˜ ์ •์„ - ๋‚จ๊ถ ์„ฑ

๋Œ“๊ธ€