비트 연산자

비트 연산자는 정수형에서만 사용할 수 있습니다.

비트 단위에서 비교하는 연산자입니다. (해당 연산자는 Kotlin에서 많이 쓰이질 않습니다. 개념만 알아둡시다!)

 

연산자 설명 예시 예시 결과
A and B A 그리고 B 모두다 1일 때 참 1 and 0 0
A or B A 또는 B에 1이 있으면 참 1 or 0 1
A xor B A 또는 B에 1이 홀수개이면 참 1 xor 0 1
A.inv() A의 비트를 반전 0.inv() -1
A shl B  왼쪽 시프트 연산 2 shl 2 8
A shr B 오른쪽 시프트 연산 2 shr 2 0
A ushr B 부호비트 포함 오른쪽 시프트 연산 2 ushr 2 0

 

위 표를 Kotlin으로 작성해보면,

print("1 & 0 : ${1.and(0)}\n")
print("1 | 0 : ${1.or(0)}\n")
print("1 ^ 0 : ${1.xor(0)}\n")
print("~1 : ${0.inv()}\n")
print("2 << 2 : ${2.shl(2)}\n")
print("2 >> 2 : ${2.shr(2)}\n")
print("2 >>> 2 : ${2.ushr(2)}\n")
// 실행결과
// 1 & 0 : 0
// 1 | 0 : 1
// 1 ^ 0 : 1
// ~1 : -1
// 2 << 2 : 8
// 2 >> 2 : 0
// 2 >>> 2 : 0

 

 

논리 연산자 (&&, ||, !)

마지막으로 논리 연산자입니다.

비트 연산자가 비트의 논리에 대해 다뤘다면 논리 연산자는 논리식에 대한 참, 거짓을 다룹니다.

print("true && false : ${true && false}\n")
print("true || false : ${true || false}\n")
print("true && !false : ${true && !false}\n")
// 실행결과
// true && false : false
// true || false : true
// true && !false : true

각각 AND, OR, NOT 연산자이며 NOT 연산자는 true는 false로 false는 true로 바꿉니다.

따라서 마지막 실행 결과는 false의 부정이므로 true && true의 연산 결과가 나오게 됩니다.

우선순위

연산자마다 먼저 실행되는 순서가 있습니다. 연산자 여러 개가 쓰인 경우 이 순서를 따라 연산됩니다.

 

이를 표로 정리해봤습니다.

(메소드로 사용되는 것들은 우선순위가 적용되지 않으므로 제외되어 있습니다.)

우선순위 연산자
1 ++(후위), --(후위), ., ?., ?
2 -, +, ++(전위), --(전위), !, 그 외(label)
3 :, as, as? (자료형을 바꿀 때 쓰는 연산자입니다.)
4 *, /, %
5 +, -
6 .. (범위를 나타내는 연산자입니다.)
7 simpleIdentifier (자세히보기)
8 ?:
9 in, !in, is, !is (각각 범위와 타입 체크를 위해 쓰입니다.)
10 <, <=, >, >=
11 ==, !==
12 &&
13 ||
14 =, +=, -=, *=, /=, %=

 

비교 연산자 (>, >=, <, <=, ==, !=, ===, !==)

비교 연산자는 두 변수의 대소 관계나 값, 객체를 비교할 때 쓰입니다.

비교 연산자를 포함하여 앞으로 나올 논리 연산자를 결과가 이진값(Boolean)으로 나옵니다. 즉, true 또는 false입니다.

 

연산자 설명
A > B A가 B보다 크다.
A >= B A가 B보다 크거나 같다.
A < B A가 B보다 작다.
A <= B A가 B보다 작거나 같다.
A == B A와 B의 값이 같은가?
A != B A와 B의 값이 다른가?
A === B A 객체와 B 객체가 같은가?
A !== B A 객체와 B 객체가 다른가?

=== 그리고 !==에 대하여는 나중에 자세하게 알아보겠습니다.

print("1 > 1 : ${1>1}\n")
print("1 >= 1 : ${1>=1}\n")
print("1 == 1 : ${1==1}\n")
print("1 != 1 : ${1!=1}\n")
// 실행결과
// 1 > 1 : false
// 1 >= 1 : true
// 1 == 1 : true
// 1 != 1 : false
해당 코드 작성 시 인텔리제이에서는 1>1 1>=1 등 비교 연산자 부분에 밑줄이 그어집니다.
1>1은 결국 false이고 1>=1은 결국 true이기 때문에 Alt + Space 키를 눌러 결과 값(true, false)으로 바꿀 수 있습니다.

 

 

출처 : https://blog.skylightqp.kr/entry/Kotlin-%EB%8B%A4%EB%A3%A8%EA%B8%B0-4-%EC%97%B0%EC%82%B0%EC%9E%90Operators

 

코틀린 Kotlin 다루기 (4) - 연산자 (Operators)

연산자(Operators) 연산자를 이번 편에서 배우지만 이전 강좌에서 연산자를 써본 적이 있습니다. 연산자는 대입, 산술, 논리, 비트 연산자 등이 있습니다. 이와 함께 어떤 연산자가 먼저 계산되는지

blog.skylightqp.kr

 

+ Recent posts