2.3 비트전환 연산자 ~
비트전환 연산자'~'는 정수형과 char형에서만 사용이 되며, 피연산자를 2진수로 표현 했을 때, 0은 1로 1은 0으로 바꾼다. 그래서 연산자 '~'에 의해 비트전환이 되면 피연산자의 부호가 반대로 변경된다.
(byte, short, char형은 int형으로 변경된 후 전환된다)
2진수 10진수
0/0/0/0/0/0/0/0 +10
1/1/1/1/1/1/1/1 -11
public static void main(String[] args) {
byte b = 10;
System.out.println("b="+b);
System.out.println("~b="+~b);
System.out.println("~b+1="+(~b+1));
}
}
실행결과
b=10
~b=-11
~b+1=-10
결과를 보면, 어떤 양의 정수에 대한 음의 정수를 얻으려면 어떻게 해야하는지 알 수 있습니다. 양의 정수 b가 있을 때, b에 대한 음의 정수를 얻으려면 ~b+1을 계산하면 됩니다.
2진수 10진수
0/0/0/0/1/0/1/0 10
1/1/1/1/0/1/0/1 -11
1/1/1/1/0/1/0/1 -11
0/0/0/0/0/0/0/1 +) 1
1/1/1/1/0/1/1/0 -10
먼저 10을 2진수로 표현한 다음 0을 1로, 1을 0으로 바꾸고 그 결과에 1을 더하면 -10의 2진 표현을 얻을 수 있다.
public class Operator6 {
public static void main(String[] args) {
byte a = 10;
byte result = (byte) ~a;
System.out.println("a = "+a);
System.out.println("result = "+result);
}
}
실행결과
a = 10
result = -11
연산자 ~는 피연산자 타입이 int보다 작으면, int형으로 변환 후 연산을 수행하기 때문에 위의 예제에서 byte형 변수 a를 int형으로 변환 후 연산을 수행하기 때문에 연산결과를 저장하기 위해서는 int형 변수에 저장하거나, 캐스트 연산자를 사용해야합니다.
2.4 논리부정 연산자 !
이 연산자는 boolean형에만 사용할 수 있으며, true는 false로 false는 true로 변경합니다.
존건문과 반복문의 조건식에 사용되어 조건식을 보다 효율적으로 만들어 줍니다. 연산자 !를 이용해서 한번 누르면 on, 또 한번 누르면 off가 되는 토글버튼을 논리적으로 구현할 수 있습니다.
public class Operator7 {
public static void main(String[] args) {
boolean power = true;
System.out.println(power);
power = !power;
System.out.println(power);
power = !power;
System.out.println(power);
}
}
실행결과
true
false
true
댓글 없음:
댓글 쓰기