비트 연산자 질문입니다.
안녕하세요!비트 연산자에 대해 정확이 이해하고 싶다면 먼저 숫자 체계 (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로 반환되었는데. 그래서 이렇게 음수 값을 나옵니다.