조건 연산자는 삼항 연산자라고 한다.
그 동안의 연산자들과 달리 코드 한줄로 컴퓨터에게 상당히 많은 일을 시킬 수 있다.
int var1 = ( 0 == 1) ? 100 : 200;
의미 : 조건식 0 == 1 이 참이면 100 거짓이면 200을 var1에 대입한다.
* 0은 1과 같지 않으므로 false, 200이 var1에 할당된다.
자바 코드는 한줄이지만 기계어(어셈블리어)로 번역하면 많은 줄을 필요로 하는 코드이다. 그만큼 함축된 의미가 들어있다. if else문으로도 표현이 가능하다.
- 변수 = 조건 ? 참일 경우 반환(return) : 거짓일 경우 반환 (return)
비트 연산은 두 변수에
AND : &
OR : |
XOR : ^
NOT : ~
연산을 한다.
1) AND (&)
1과 3을 비트 연산하면 두개의 이진수를 비교하여 같은 자리수가 둘다 1인 경우만 1이 된다. 여기서 0은 거짓 1은 참이라 생각하고 AND 게이트를 생각하면 된다. 2장의 AND 게이트를 모든 비트를 가지고 비교한다고 볼 수 있다.
https://digiconfactory.tistory.com/27
2) OR (|)
OR은 두 변수의 각각 비트의 자리를 비교한다. 둘 중 하나에 1이 있으면 1이 된다.
3) XOR (^)
XOR은 두 비트가 같으면 0 다르면 1의 결과를 낸다.
4) NOT (~)
NOT은 비트 반전이다. 0이면 1로 1이면 0으로 반전한다. 반전이기 때문에 항이 하나만 필요하다.
소스코드는 아래와 같다.
비트 이동 연산자는 비트를 오른쪽이나 왼쪽으로 이동시키는 기능을 한다.
예를 들어 1이 있다고 하자.
0000 0001
왼쪽으로 3칸 이동하면
0000 1000
이고 8이 된다. 여기서 오른쪽으로 1칸 이동하면
0000 0100
이 되고 4가 된다.
왼쪽으로 3칸 이동할 때는
변수 << 3
오른쪽으로 1칸 이동할 때는
변수 >> 1
이라 쓴다. 코드는 다음과 같다. 0B00000001 은 binary(이진) 값으로 입력한 것이다.
아직은 코딩을 하며 비트연산자를 쓸 일이 좀처럼 없을 것이다. 비트연산자를 사용하지 않아도 다른 쉬운 문법들이 많이 있다. 허나 자바로도 비트연산자를 다룰 수 있다는 것 정도를 알아두면 좋을 것이다. 나중에 가면 비트를 가지고 여러가지를 해볼 수 있다.