반응형
비트 연산자
1. &(논리곱)
5 & 3 = 1
5를 2진수로 바꾸면 0101
3을 2진수로 바꾸면 0011
각각의 2진수를 논리연산자 &&(And)로 계산하면 결과 값은 0001
0001 을 10 진수로 변경하면 1
0 | 1 | 0 | 1 | |
+ | 0 | 0 | 1 | 1 |
= | 0 | 0 | 0 | 1 |
2. |(논리합)
Or연산자
5 | 3 = 7
0 | 1 | 0 | 1 | |
+ | 0 | 0 | 1 | 1 |
= | 0 | 1 | 1 | 1 |
3. 배타적 논리합(xor)
각 비트를 비교하여 한 쪽이 1이고 다른 쪽이 0 이면 1을 반환한고, 아니면 0을 반환한다.
5^3 =6
0 | 1 | 0 | 1 | |
+ | 0 | 0 | 1 | 1 |
= | 0 | 1 | 1 | 0 |
4. 보수표현(Not)
MSB(부호비트) 비트 단위에 포함되므로 , 양수 -> 음수 / 음수 -> 양수 변환된다.
해당 value의 반대 부호 -1
~-30
결과값 : 29
~-20
결과값 : -21
코드
public class Operator02 {
public static void main(String[] args) {
int num1 = 5;
int num2 = 3;
int num3 = -30;
int num4 = 20;
System.out.println(num1 & num2);
System.out.println(num1 | num2);
System.out.println(num1 ^ num2);
System.out.println(num3);
System.out.println(num4);
}
}
실행화면
728x90
반응형