[kotlin] 비트 단위 논리 연산자

비트 연산은 데이터를 이진수로 다루는 연산 방식으로, 비트 단위 논리 연산자는 이진수 값을 조작하는 데 사용됩니다. Kotlin은 다음과 같은 비트 단위 논리 연산자를 제공합니다:

  1. and : 두 비트가 모두 1이면 1을 반환
  2. or : 두 비트 중 하나 이상이 1이면 1을 반환
  3. xor : 두 비트가 서로 다르면 1을 반환
  4. inv : 비트를 반전시킴 (1은 0으로, 0은 1로)

이제 각 비트 단위 논리 연산자를 실제 예제로 살펴보겠습니다.

and 연산자

and 연산자는 두 비트가 모두 1인 경우에만 1을 반환합니다.

예를 들어:

val result = 0b110 and 0b011 // 이진수 값으로 6 and 3을 수행
println(result) // 출력 결과는 2

위의 예에서 0b1100b011는 각각 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