๋นํธ ์ฐ์ฐ์ ์ง๋ฌธ์
๋๋ค.
์๋
ํ์ธ์!๋นํธ ์ฐ์ฐ์์ ๋ํด ์ ํ์ด ์ดํดํ๊ณ ์ถ๋ค๋ฉด ๋จผ์ ์ซ์ ์ฒด๊ณ (Number Systen) ๋ฅผ ์ ๊ณต๋ถํ์ธ์.2์ง์ ,8์ง์, 16์ง์,Second complement ๋ฑ์ ์๊ณ ์์ผ๋ฉด ๋๋ฌด ์ ์ฉํฉ๋๋ค. & (AND) ์ฐ์ฐ์๋. ๋ ๋นํธ๊ฐ ๋ชจ๋ 1์ผ ๋๋ง 1์ ๋ฐํํฉ๋๋ค.0 & 0 => 0์ ๋ฐํ0 & 1 => 0์ ๋ฐํ1 & 0 => 0์ ๋ฐํ1 & 1 => 1์ ๋ฐํ System.out.println(num1 & num2); //2 00000010 00001010 00000010 | (OR) ์ฐ์ฐ์๋ ๋ ๊ฐ์ ๋นํธ ์ค ํ๋๋ผ๋ 1์ด๋ฉด 1๋ก ๋ฐํํฉ๋๋ค.0 | 0 => 0์ ๋ฐํ0 | 1 => 1์ ๋ฐํ1 | 0 => 1์ ๋ฐํ1 | 1 => 1์ ๋ฐํSystem.out.println(num1 | num2); //1000000010 00001010 00001010 ^ (XOR) ์ฐ์ฐ์๋ ๋ ๊ฐ์ ๋นํธ๊ฐ ์๋ก ๋ค๋ฅธ ๊ฒฝ์ฐ์ 1์ ๋ฐํํฉ๋๋ค0 ^ 0 => 0์ ๋ฐํ0 ^ 1 => 1์ ๋ฐํ1 ^ 0 => 1์ ๋ฐํ1 ^ 1 => 0์ ๋ฐํSystem.out.println(num1 ^ num2); //800000010 00001010 00001000 ~(NOT) ์ฐ์ฐ์๋ 0 ์ด๋ฉด 1๋ก, 1 ์ด๋ฉด 0๋ก ๋ฐ๊ฟ์ค๋๋ค. ์ด๊ฑฐ๋ ์์ฃผ ๊ฐ๋จํ๋ค์ฉ ใ
ใ
~0 => 1์ ๋ฐํ~1 => 0์ ๋ฐํSystem.out.println(~num1); // -300000010 11111101 8 ๋นํธ๋ก ์ด๋ ๊ฒ ํํ ํ๋ฉด num1 ์ ๊ฐ์ ๋ฐ์ ์ํจ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.๊ทธ๋ฆฌ๊ณ MSB (Most Significant Bit)๋ 1๋ก ๋ฐํ๋์๋๋ฐ. ๊ทธ๋์ ์ด๋ ๊ฒ ์์ ๊ฐ์ ๋์ต๋๋ค.