4. [C์–ธ์–ด] ๋น„ํŠธ ์—ฐ์‚ฐ์ž

2019. 5. 10. 02:56ใ†PROGRAMMING/C & C++

๋น„ํŠธ ๋‹จ์œ„ ์—ฐ์‚ฐ์€ ์ฃผ๋กœ ํ•˜๋“œ์›จ์–ด ๊ด€๋ จ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ํ™œ์šฉ๋˜์ง€๋งŒ,

๊ทธ ์™ธ์˜ ์˜์—ญ์—์„œ๋Š”

๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ ,

์—ฐ์‚ฐ์˜ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ์ธก๋ฉด ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 


 

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

 

๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” ์ •์ˆ˜ ์ž๋ฃŒํ˜•๋งŒ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

๋น„ํŠธ ์—ฐ์‚ฌ์ž์˜ ์ข…๋ฅ˜๋Š”

๋น„ํŠธ๋‹จ์œ„ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž, ๋น„ํŠธ๋‹จ์œ„ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

2. ๋น„ํŠธ๋‹จ์œ„ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋น„ํŠธ๋‹จ์œ„ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์—๋Š” ์ด 4๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

& (and), | (or), ~ (not), ^ (xor)

 

1. ๋น„ํŠธ๋‹จ์œ„ & (and) ์—ฐ์‚ฐ์ž

๋น„๊ตํ•˜๋Š” ๋‘ ๋น„ํŠธ์—ด์˜ ๊ฐ’์ด ๋ชจ๋‘ 1์ผ ๋•Œ ๊ฒฐ๊ณผ๋Š” 1,

ํ•˜๋‚˜๋ผ๋„ 0์ด๋ผ๋ฉด ๊ฒฐ๊ณผ๋Š” 0์ž…๋‹ˆ๋‹ค.

 

์ •์ˆ˜ 35์™€ 67์„ & ๋น„ํŠธ ์—ฐ์‚ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

0010 0011 (2) 10์ง„์ˆ˜ 35

0100 0011 (2) 10์ง„์ˆ˜ 67

--------------------------------

0000 0011 (2) 10์ง„์ˆ˜ 3  

์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” 3

 

 

 

 

2. ๋น„ํŠธ๋‹จ์œ„ | (or) ์—ฐ์‚ฐ์ž

๋น„๊ตํ•˜๋Š” ๋‘ ๋น„ํŠธ์—ด์˜ ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด ๊ฒฐ๊ณผ๋Š” 1,

๋‘˜ ๋‹ค 0์ด๋ฉด ๊ฒฐ๊ณผ๋Š” 0์ž…๋‹ˆ๋‹ค.

 

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ •์ˆ˜ 35์™€ 67์„ | ๋น„ํŠธ ์—ฐ์‚ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

0010 0011 (2) 10์ง„์ˆ˜ 35

0100 0011 (2) 10์ง„์ˆ˜ 67

--------------------------------

0110 0011 (2) 10์ง„์ˆ˜ 99

 

 

 

 

3. ๋น„ํŠธ๋‹จ์œ„ ~ (not) ์—ฐ์‚ฐ์ž

ํ”ผ ์—ฐ์‚ฐ์ž์˜ ๋ชจ๋“  ๋น„ํŠธ์—ด์„ ๋ฐ˜์ „์‹œํ‚ต๋‹ˆ๋‹ค.

0111 1111 (2) 10์ง„์ˆ˜ 127

---------------------------------

1000 0000(2) 10์ง„์ˆ˜ -128

iNum1์˜ ๋น„ํŠธ์—ด์—๋Š” ์˜ํ–ฅ์ด ์—†๊ณ , ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

์•ž์— ํฌ์ŠคํŒ…์—์„œ ๋งจ ์™ผ์ชฝ ์—ด์€ ๋ถ€ํ˜ธ ๋น„ํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ 1000 0000 (2)์€ 10์ง„์ˆ˜ -128์„ ๋น„ํŠธ์—ด์ž…๋‹ˆ๋‹ค.

 

์ด์ „ ํฌ์ŠคํŒ…์—์„œ 2์˜ ๋ณด์ˆ˜๋ฒ•์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€

๋ชจ๋“  ๋น„ํŠธ์—ด์„ ๋ฐ˜์ „์‹œํ‚จ ํ›„, 1์„ ๋”ํ•œ๋‹ค ๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๋ชจ๋“  ๋น„ํŠธ์—ด์„ ๋ฐ˜์ „์‹œํ‚ค๋Š”

๋น„ํŠธ๋‹จ์œ„ ~ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ 2์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ex) 10์ง„์ˆ˜ 25์˜ 2์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์‹

2์˜ ๋ณด์ˆ˜ = ~25 +1

 

 

 

4. ๋น„ํŠธ๋‹จ์œ„ ^ (xor) ์—ฐ์‚ฐ์ž

๋น„๊ตํ•˜๋Š” ๋‘ ๋น„ํŠธ์—ด์ด ๊ฐ™์œผ๋ฉด 0,

๋‹ค๋ฅด๋ฉด ๊ฒฐ๊ณผ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

 

์ •์ˆ˜ 35์™€ 67์„ xor๋น„ํŠธ ์—ฐ์‚ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

0010 0011 (2) 10์ง„์ˆ˜ 35

0100 0011 (2) 10์ง„์ˆ˜ 67

-------------------------------------

0110 0000 (2) 10์ง„์ˆ˜ 96

 

 


 

2. ๋น„ํŠธ๋‹จ์œ„ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž

๋น„ํŠธ๋‹จ์œ„ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž๋Š” << (์ขŒ์ธก ์‹œํ”„ํŠธ), >> (์šฐ์ธก ์‹œํ”„ํŠธ) ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. << (์ขŒ์ธก ์‹œํ”„ํŠธ) ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ชจ๋“  ๋น„ํŠธ์—ด์„ ์ขŒ์ธก์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 10 << 2๋Š”

10์˜ ๋ชจ๋“  ๋น„ํŠธ์—ด์„ 2๋งŒํผ ์ขŒ์ธก์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ์‹์ž…๋‹ˆ๋‹ค.

0000 1010 (2) 10์ง„์ˆ˜ 10

----------------------------------

0010 1000 (2) 10์ง„์ˆ˜ 40

2์ง„์ˆ˜๋Š” ์ขŒ์ธก์œผ๋กœ ๊ฐˆ์ˆ˜๋ก 2์˜ n์Šน๋งŒํผ ์ˆ˜๊ฐ€ ์ปค์ง€๋ฏ€๋กœ

X << n๋Š”

x * 2^n์ด๋ผ๋Š” ๊ฒฐ๊ณผ ์‹์„ ๋„์ถœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

8 << 3  -> 64 ( 8 * 2^3 )

 

 

3. >> (์šฐ์ธก ์‹œํ”„ํŠธ) ์—ฐ์‚ฐ์ž

์ขŒ์ธก ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž์™€๋Š” ๋ฐ˜๋Œ€๋กœ

ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ชจ๋“  ๋น„ํŠธ์—ด์„ ์šฐ์ธก์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 10 << 2๋Š”

10์˜ ๋ชจ๋“  ๋น„ํŠธ์—ด์„ 2๋งŒํผ ์šฐ์ธก์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ์‹์ž…๋‹ˆ๋‹ค.

0000 1010 (2) 10์ง„์ˆ˜ 10

----------------------------------

0000 0010 (2) 10์ง„์ˆ˜ 2

์šฐ์ธก์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋น„ํŠธ์—ด์€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

 

์šฐ์ธก์œผ๋กœ ๋น„ํŠธ๋ฅผ ์ด๋™ํ• ์ˆ˜๋ก 2์˜ n์Šน๋งŒํผ ์ž‘์•„์ง€๋ฏ€๋กœ,

X >> n๋Š”

x / 2^n์ด๋ผ๋Š” ๊ฒฐ๊ณผ ์‹์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

16 >> 2  -> 4 ( 16 * 2^2 )

 

 

๊ฒŒ์ž„์„ ๋งŒ๋“ค ๋•Œ ๋น„ํŠธ ์—ฐ์‚ฐ์ž์˜ ํ™œ์šฉ์€

์ฐจํ›„ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.