[kotlin] 비트 단위 논리 연산자
비트 연산은 데이터를 이진수로 다루는 연산 방식으로, 비트 단위 논리 연산자는 이진수 값을 조작하는 데 사용됩니다. Kotlin은 다음과 같은 비트 단위 논리 연산자를 제공합니다:
and
: 두 비트가 모두 1이면 1을 반환or
: 두 비트 중 하나 이상이 1이면 1을 반환xor
: 두 비트가 서로 다르면 1을 반환inv
: 비트를 반전시킴 (1은 0으로, 0은 1로)
이제 각 비트 단위 논리 연산자를 실제 예제로 살펴보겠습니다.
and
연산자
and
연산자는 두 비트가 모두 1인 경우에만 1을 반환합니다.
예를 들어:
val result = 0b110 and 0b011 // 이진수 값으로 6 and 3을 수행
println(result) // 출력 결과는 2
위의 예에서 0b110
과 0b011
는 각각 10진수로 6과 3에 해당하며, and
연산 결과인 0b010
은 10진수로 2에 해당합니다.
or
연산자
or
연산자는 두 비트 중 하나 이상이 1인 경우 1을 반환합니다.
예를 들어:
val result = 0b110 or 0b011 // 이진수 값으로 6 or 3을 수행
println(result) // 출력 결과는 7
위의 예제에서 or
연산 결과는 0b111
으로 10진수로는 7에 해당합니다.
xor
연산자
xor
연산자는 두 비트가 서로 다른 경우에 1을 반환합니다.
val result = 0b110 xor 0b011 // 이진수 값으로 6 xor 3을 수행
println(result) // 출력 결과는 5
위의 예제에서 xor
연산 결과는 0b101
으로 10진수로는 5에 해당합니다.
inv
연산자
inv
연산자는 비트를 반전시킵니다.
val result = 0b110.inv() // 이진수 값으로 6의 반전을 수행
println(result) // 출력 결과는 -7
위의 예에서 inv
연산 결과는 10진수 -7에 해당합니다.
비트 단위 논리 연산자는 비트 연산을 통해 데이터를 조작하는 데 유용하게 사용될 수 있습니다. Kotlin에서 이러한 비트 단위 연산자를 잘 활용하여 데이터 처리를 효율적으로 수행할 수 있습니다.
참고 문헌: https://kotlinlang.org/docs/reference/operators.html