bitwise operators - Lee-hyuna/33-js-concepts-kr GitHub Wiki

์›๋ฌธ: JavaScript: Bitwise Operators

๋น„ํŠธ ๋‹จ์œ„ ์—ฐ์‚ฐ์ž๋Š” 10 ์ง„์ˆ˜, 16 ์ง„์ˆ˜ ๋˜๋Š” 8 ์ง„์ˆ˜๊ฐ€ ์•„๋‹Œ ์ธ์ˆ˜์˜ ๋น„ํŠธ(0,1)์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ญ์ง„์ˆ˜ 8์€ ์ด์ง„์ˆ˜๋กœ 1000์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” ์ด๋Ÿฌํ•œ ์ด์ง„ ํ‘œํ˜„(์˜ˆ: 1000)์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ํ‘œ์ค€ Javascript ์ˆซ์ž ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋‹ค์Œ์€ JavaScript์˜ ๋น„ํŠธ ์—ฐ์‚ฐ์ž ๋ชฉ๋ก์ด๋‹ค.

์—ฐ์‚ฐ์ž ์šฉ๋ฒ• ์„ค๋ช…
Bitwise AND a & b ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1 ์ธ ๊ฒฝ์šฐ ๊ฐ ๋น„ํŠธ ์œ„์น˜์— 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Bitwise OR a | b ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋น„ํŠธ๊ฐ€ ํ•˜๋‚˜ ์ธ ๊ฒฝ์šฐ ๊ฐ ๋น„ํŠธ์—์„œ ํ•˜๋‚˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Bitwise XOR a ^ b ํ•œ ๋น„ํŠธ์˜ ๋น„ํŠธ๊ฐ€ ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž ๋‘˜ ๋‹ค ์•„๋‹Œ ๊ฒฝ์šฐ ๋น„ํŠธ ์œ„์น˜์˜ 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Bitwise NOT ~ a ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋น„ํŠธ๋ฅผ ๋’ค์ง‘๋Š”๋‹ค.
์™ผ์ชฝ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ a << b a๋ฅผ 2 ์ง„์ˆ˜ ํ‘œํ˜„ b ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ์‹œํ”„ํŠธํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ์—์„œ 0์„ ์‹œํ”„ํŠธํ•œ๋‹ค.
๋ถ€ํ˜ธ์žˆ๋Š” ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ a >> b a๋ฅผ 2 ์ง„์ˆ˜๋กœ b ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์‹œํ”„ํŠธํ•˜๊ณ , ์ œ๊ฑฐ ๋œ ๋น„ํŠธ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
๋ถ€ํ˜ธ์—†๋Š” ์šฐ์ธก ์‹œํ”„ํŠธ ์—ฐ์‚ฐ a >>> b a๋ฅผ 2 ์ง„์ˆ˜๋กœ b ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์‹œํ”„ํŠธํ•˜๊ณ , ์‹œํ”„ํŠธ ์˜คํ”„ ํ•œ ๋น„ํŠธ๋ฅผ ๋ฒ„๋ฆฌ๊ณ , ์™ผ์ชฝ์—์„œ 0์„ ์‹œํ”„ํŠธํ•œ๋‹ค.