๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS/์•Œ๊ณ ๋ฆฌ์ฆ˜

JAVA ์ž๋ฐ”๋กœ ๋น„ํŠธ์—ฐ์‚ฐ ์•Œ์•„๋ณด๊ธฐ :: ์ฝ”๋“œ ์ž๋ชฝ

by ๐ŸŒปโ™š 2019. 11. 23.

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

๋น„ํŠธ์—ฐ์‚ฐ์€ 2์ง„์ˆ˜ํ˜•ํƒœ์˜ ์ˆซ์ž 0๊ณผ 1๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ด๋‹ค. ์ž๋ฐ”์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ 6๊ฐ€์ง€๋ฅผ ์•Œ์•„๋ณด์ž.
๋น„ํŠธ์—ฐ์‚ฐ์ž๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋”๋Ÿฌ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ค„์—ฌ ์ฃผ๋Š” ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


์™ผ์ชฝ ์‹œํ”„ํŠธ(<<)

์ˆซ์ž์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๊ณ  ์˜ค๋ฅธ์ชฝ์— ์ƒ๊ธฐ๋Š” ๋นˆ ๋น„ํŠธ ์ž๋ฆฌ์—๋Š” 0์œผ๋กœ ์ฑ„์šด๋‹ค.
x << y ํ˜•์‹์œผ๋กœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ  x์˜ ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์œผ๋กœ y์นธ ์ด๋™์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
ex) 1111 << 2 = 111100
1111(15) ์ด 111100(60)๋กœ ๋ฐ”๋€๊ฒƒ์„ ๋ณด๋ฉด x * 2^y ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ(>>)

์ˆซ์ž์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚จ๋‹ค. ๊ฐ€์žฅ ์šฐ์ธก์— ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ๋ฐ€๋ ค๋‚˜๊ฐ€๋ฉด ๊ทธ๋ƒฅ ๋ฒ„๋ฆฐ๋‹ค.

x >> y ํ˜•์‹์œผ๋กœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ  x์˜ ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์œผ๋กœ y์นธ ์ด๋™์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

ex) 1111 >> 2 = 11

1111(15) ์ด 11(3)๋กœ ๋ณ€ํ˜•๋˜๋Š” ๊ฒƒ์„ ๋ณด๋ฉด x / 2^y ์œผ๋กœ ๋‚˜๋จธ์ง€๋ฅผ ์ œ์™ธํ•œ ๋ชซ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.


๋น„ํŠธ์˜ ๋ณด์ˆ˜(~)

์ด์ง„์ˆ˜์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊พผ๋‹ค. 0 ์ด๋ฉด 1, 1์ด๋ฉด 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ๋ณด์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ 32์ž๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

~x ํ˜•์‹์œผ๋กœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  x์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

ex) ~0110 = 11111111111111111111111111111001

๊ธฐ์กด ์•ž์— ์ž๋ฆฌ๋Š” 0์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ 1๋กœ ๋ฐ”๋€Œ๊ณ  1์ด์—ˆ๋˜ ์ž๋ฆฌ๋Š” 0์œผ๋กœ ๋ฐ”๋€๋‹ค.


JAVA ์˜ˆ์‹œ

๊ฒฐ๊ณผ



AND(&)

๊ธฐ๋ณธ AND ์—ฐ์‚ฐ์ž์ฒ˜๋Ÿผ ํ•ด๋‹น ์ž๋ฆฌ์ˆ˜์—์„œ ๋‘˜๋‹ค 1์ธ ๊ฒฝ์šฐ 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
x & y ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์˜๋ฏธ์˜ ์ˆซ์ž x์™€ y๋ฅผ ๋น„๊ตํ•œ๋‹ค.
ex) 1111 & 1000 = 1000

OR(|)

๊ธฐ๋ณธ OR ์—ฐ์‚ฐ์ž์ฒ˜๋Ÿผ ํ•ด๋‹น ์ž๋ฆฌ์ˆ˜์—์„œ ํ•˜๋‚˜๋ผ๋„ 1์ธ ๊ฒฝ์šฐ 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‘˜๋‹ค 0์ธ ๊ฒฝ์šฐ 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

x | y ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์˜๋ฏธ์˜ ์ˆซ์ž x ์™€ y๋ฅผ ๋น„๊ตํ•œ๋‹ค.

ex) 1111 & 1000 = 1111

XOR(^)

x ^ y ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ํ•ด๋‹น ์ž๋ฆฌ์ˆ˜์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ์šฐ 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ฐ™์€ ๊ฒฝ์šฐ 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ex) 1111 & 1000 = 111


JAVA ์˜ˆ์‹œ

๊ฒฐ๊ณผ



๋Œ“๊ธ€