프로그래밍/Java | 2014. 6. 23. 16:42
연산자 ( & , | , ~ , ! )에 대한 이야기
논리 연산자중에 AND 를 의미하는 '& ' 와 '&&'가 OR를 의미하는 ' | ' 와 ' || '보다 우선순위가 높다.
우선순위 : & > ||
AND와 OR가 함께 사용되는 경우에는 괄호를 사용해서 운선순위를 명확히 하는것이 좋다.
비트전환 연산자 ' ~ ' 는 정수형과 char형에만 사용될 수 있다.
피연산자를 2진수로 표현했을 때, 0은 1로 1은 0으로 바꾼다.
2진수 | 10진수 | |||||||
0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 10 |
1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | -11 |
그래서 연산자 ' ~ ' 에 의해 비트전환 되고 나면, 피연산자의 부호가 반대로 변경된다.
public static void main(String[] args) { byte b = 10; System.out.println ("a = " + a); System.out.println ("~a = " + ~a); System.out.println ("~a+1 = " + (~a+1); }
출력 결과
a = 10;
~a= -11;
~a+1 = -10;
따라서, 양수를 음수로 바꾸고 싶을땐?
' ~변수+1 '
연산자 '~ '는 피연산자의 타입이 int형 보다 작으면, int형으로 변환한 다음에 연산을 하기 때문에
연산결과를 저장하고 싶다면
int형 변수에 담거나, 캐스트 연산자를 사용해야한다.
public static void main(String[] args) { byte a= 1; //'~'연산의 결과가 int형이라서 byte형 변수에 저장할 수 없다. //byte result = ~a; // 이렇게 캐스트 연산자를 사용하던지 해야함. byte result = (byte) ~a; }
논리부정 연산자 ' ! '
boolean형에만 사용할 수 있으며, 토글버튼(toggle button)을 논리적으로 구현할 수 있다.
ex>
boolean power = false;
power = !power;
[Java] 재귀호출에 대한 이야기 (0) | 2014.06.23 |
---|---|
[Java] JVM의 메모리 구조 (0) | 2014.06.23 |
[Java] 반환값 return의 TIP (0) | 2014.06.23 |
[Java] 배열에 대한 이야기 (0) | 2014.06.23 |
[Java] 조건문과 반복문에 대한 이야기 (0) | 2014.06.23 |
[Java] 나머지 연산자 ' % ' 와 시프트 연산자 ' <<, >>, >>> ' 이야기 (0) | 2014.06.23 |
[Java]Byte나 Short보다 int형을 쓰는 이유 (0) | 2014.06.23 |
[Java] 문자형 char 에 대한 이야기 (0) | 2014.06.21 |
[Java] Java 언어의 특징 (0) | 2014.06.21 |
[Java] 변수에 대한 이야기 (0) | 2014.06.21 |
Recent Comments