ava의 연산자들(3) - 조건, 비트 연산자
조건연산자
- 조건식이 true인 경우와 false인 경우에 각각 다른 결과를 만들어주는 연산자입니다.
- if 조건문을 간단히 표현할 때 사용할 수 있습니다.
- "조건식? 결과1; 결과2;" 형태로 표현된다. 참(true)일때 결과1이 수행됩니다.
코드예시
public class ConditionTest {
public static void main(String[] args) {
int max;
System.out.println("두 수를 입력 받아서 더 큰 수를 출력하세요\n");
//수를 입력받을 수 있는 함수
Scanner scanner = new Scanner(System.in);
System.out.println("입력 1:");
int num1 = scanner.nextInt();
System.out.println("입력 2:");
int num2 = scanner.nextInt();
//두 값중 큰 값이 출력되도록 작동하는 조건 연산자
max = (num1 > num2)? num1 : num2;
System.out.println(max);
}
}
(num1 > num2) 의 결과가 true일 경우 num1이 출력되고 false인 경우 num2가 출력이 된다. 그러므로 두 값중 큰 값이 max에 들어가게 되는 원리입니다. 조건 연산자는 이런식의 활용이 가능합니다.
비트연산자
- 대입연산자와 다른 연산자가 함께 사용됩니다.
- 비트 켜기 / 끄기 : 특정 비트들만을 1 또는 0으로 설정해서 사용하고 싶을 때 사용됩니다.
ex) 하위 3비트 중 1인 비트만을 꺼내고 싶다면 & 000111 과 같은 방식을 사용하면 됩니다. -> & 연산자는 밑에 표 참조.
연산자 | 설명 | 예시 |
---|---|---|
~ | 비트의 반전 | |
& | 비트 단위 And | 1 & 1 인 경우만 1 반환 나머지는 0 |
ㅣ | 비트 단위 Or | 0 ㅣ 0 인 경우만 0 반환 나머지는 1 |
^ | 비트 단위 XOR | 두 비트가 다른 경우만 1 반환 나머지는 0 |
<< | 왼쪽 shift | a<<1 -> 변수 a를 1비트 만큼 왼쪽으로 이동 |
>> | 오른쪽 shift | a>>1 -> 변수 a를 1비트 만큼 오른쪽으로 이동 |
public class BitTest {
public static void main(String[] args) {
int num1 = 5; // 00000101
int num2 = 10; // 00001010
System.out.println(num1 | num2);
// 둘 중 하나라도 1이면 1 반환
System.out.println(num1 & num2);
// 둘 다 1이면 1 반환
System.out.println(num1 ^ num2);
// 둘이 다르면 1 반환
System.out.println(~num1);
// 1-> 0 , 0-> 1 음수로 출력된다.
System.out.println(num1 << 2);
// 비트를 옆으로 밀기 00010100, 비트를 하나 밀때마다 곱하기 2
System.out.println(num1);
System.out.println(num1 <<= 2);
// <<는 num1의 값이 바뀌지 않지만 <<=는 num1의 값이 바뀜
System.out.println(num1);
}
}
실행결과
15
0
15
-6
20
5
20
20
15는 비트로 표현한다면 00001111입니다. 즉, |를 활용한 경우 둘 중 하나여도 1이 반환되므로 00001111이 출력된다는 뜻입니다.
같은원리로 0은 00000000의 결과가 반환된 것이고, 20의 경우에는 00010100 의 결과가 반환되었다는 것을 나타냅니다.
비트의 반전을 만들어주는 ~ 연산자의 결과는 음수가 나온 것을 알 수 있습니다.
이것으로 Java의 연산자를 알아보았습니다!!
Author And Source
이 문제에 관하여(ava의 연산자들(3) - 조건, 비트 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@junhyeok-5/Java의-연산자들3-조건-연산자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)