Bitmask

๋น„ํŠธ๋งˆ์Šคํฌ๋Š” 2์ง„๋ฒ•์„ ์ด์šฉํ•œ ๊ธฐ๋ฒ•์ด๋‹ค. ํฌ๊ฒŒ ๋‘๊ฐ€์ง€์˜ ํ™œ์šฉ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

  • ์ด์ง„๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์‹ญ์ง„๋ฒ•์„ ๊ณ„์‚ฐ

  • ๋น„ํŠธ์˜ ๊ฐ’์œผ๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค.

์ง‘ํ•ฉ { 0,1,2,3 } ์— ๋Œ€ํ•˜์—ฌ
{0,1}, {0,1,2}, {0,3}, {2,3} ...  

BITMASK ) 
arr1 = [0,0,1,1] => 1100 # 3
arr2 = [0,1,1,1] => 1110 # 7
arr3 = [1,0,0,1] => 1001 # 9
arr4 = [1,1,0,0] => 0011 # 12
...

SHIFT ์—ฐ์‚ฐ

๋น„ํŠธ๋ฅผ ์˜ฎ๊ธฐ๋Š” ์—ฐ์‚ฐ์ด๋‹ค.

Drawing
์ง‘ํ•ฉ { 0,1,2,3 } ์— ๋Œ€ํ•˜์—ฌ
์ง‘ํ•ฉ A { 0,1,2 } ๊ฐ€ { 1,2,3 } ์ด ๋˜๋Š” ์‹ &
์ง‘ํ•ฉ A { 0,1,2 } ๊ฐ€ { 1,2 } ์ด ๋˜๋Š” ์‹

EX ) 
0111 << 1 = 1110 
0111 >> 1 = 0011 

๋…ผ๋ฆฌ์—ฐ์‚ฐ

AND ( & )

๋‘˜๋‹ค 1์ผ๋•Œ 1์„ ๋ฐ˜ํ™˜
1010 & 
1111 = 
1010

OR ( | )

ํ•˜๋‚˜๋ผ๋„ 1์ผ๋•Œ 1์„ ๋ฐ˜ํ™˜
1010 | 
1110 = 
1110

XOR ( ^ )

์„œ๋กœ ๋‹ค๋ฅธ ๋น„ํŠธ๋ฉด 1์„ ๋ฐ˜ํ™˜
1010 | 
1110 = 
0100

NOT ( ~ )

๋น„ํŠธ์˜ ๊ฐ’์„ ๋ฐ˜์ „
~1010 = 
 0101

Last updated