๋นํธ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ ์ด์ง์ ๊ฐํธํ๊ฒ ๊ตฌํ๊ธฐ
https://choi95.tistory.com/manage/newpost/149?type=post&returnURL=https%3A%2F%2Fchoi95.tistory.com%2F149
choi95.tistory.com
์ด์ ๋น๋ฐ์ง๋ ๋ฌธ์ ๋ฅผ ํ ๋ ์ด์ง์ ๊ฐ์ ๊ตฌํ๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ํจ์๋ฅผ ๋ง๋ค์ด ์ฃผ์๋ค.
function changeBinary(x, n) {
let tmpArr = [];
while (x) {
tmpArr.push(x % 2);
x = parseInt(x / 2);
}
while (tmpArr.length < n) tmpArr.push(0);
return tmpArr.reverse();
}
์ด๋ ๊ฒ ํด๋ ์ด์ง์ ๊ฐ์ ๊ตฌํ ์๋ ์์ง๋ง ์ด์ C์ธ์ด์์ ๋ฐฐ์ ๋ ๋นํธ ์ฐ์ฐ์๋ฅผ ํตํด์ ๋ ๊ฐ๋จํ๊ฒ ์ด์ง์ ๊ฐ์ ๊ตฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ด ํฌ์คํ ํด๋ณด๊ณ ์ ํ๋ค.
&(AND ๋ ผ๋ฆฌ ์ฐ์ฐ์): ๋น๊ตํ๋ ๋นํธ๊ฐ ๋ชจ๋ 1์ด๋ฉด 1์ ๋ฐํ
let bit = 2 & 3;
console.log(bit) //2;
2 (0010)
3 (0011)
=> 0010(2) = 2(10)
|(OR ๋ ผ๋ฆฌ ์ฐ์ฐ์): ๋น๊ตํ๋ ๋นํธ ์ค์์ ํ๋๋ผ๋ 1์ด๋ฉด 1์ ๋ฐํ
let bit = 2 | 3;
console.log(b2) //3
2 (0010)
3 (0011)
=> 0011(2) = 3(10)
์ด์ ๋น๋ฐ์ง๋ ๋ฌธ์ ์์๋ ๋ ๊ฐ์ ์ง๋ ์ค ๋ฒฝ์ด ํ๋๋ผ๋ ์์ผ๋ฉด ๋ฌธ์์ด # ์ ์ถ๋ ฅํ๋ ์กฐ๊ฑด์ด ์์๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด |(OR ๋ ผ๋ฆฌ ์ฐ์ฐ์)๋ฅผ ์จ์ ๊ฐ๋จํ๊ฒ ์กฐ๊ฑด์ ๋ง๋ ๋ ์ง๋์ ์์์ ๋ํ ์ด์ง์ ๊ฐ์ ๊ตฌํ ์ ์๋ค.
let secret = (arr1[i] | arr2[i]).toString(2);