-
(1분 읽기) Kotlin 비트 연산자 🚀Android 개발/Kotlin 2024. 7. 1. 15:33
Kotlin에서는 비트 연산자와 시프트 연산자를 사용해서 이진 데이터를 다룰 수 있어.
복잡한 데이터 처리를 효율적으로 할 수 있고, 코드 가독성도 높여주지.
또한 Kotlin은 infix 함수를 지원해서 가독성까지 챙길 수 있어! 😎
💡 Kotlin 비트 연산자 종류
- or : 비트 OR (|) - 하나라도 1이면 1
- and : 비트 AND (&) - 둘 다 1일 때만 1
- xor : 비트 XOR (^) - 둘 중 하나만 1일 때 1
- inv : 비트 NOT (~) - 모든 비트를 뒤집음
- shl : 왼쪽 시프트 (<<) - 비트를 왼쪽으로 이동
- shr : 오른쪽 시프트 (>>) - 비트를 오른쪽으로 이동
- ushr : 부호 없는 오른쪽 시프트 - 부호 없이 오른쪽 이동
💡 예제 코드 : 비트 연산 쉽게 이해하기
fun main() { val bitwise = 42 // 101010 (2진수) println("Original: ${Integer.toBinaryString(bitwise)}") // 101010 println("OR (35): ${Integer.toBinaryString(bitwise or 35)}") // 111111 println("AND (35): ${Integer.toBinaryString(bitwise and 35)}") // 10 println("XOR (35): ${Integer.toBinaryString(bitwise xor 35)}") // 111101 println("INV: ${Integer.toBinaryString(bitwise.inv())}") // 음수로 나옴 (2의 보수법 때문) println("SHL (1): ${Integer.toBinaryString(bitwise shl 1)}") // 1010100 println("SHR (1): ${Integer.toBinaryString(bitwise shr 1)}") // 10101 println("USHR (1): ${Integer.toBinaryString(bitwise ushr 1)}") // 10101 }
- or : 두 비트 중 하나라도 1이면 1 → 101010 or 100011 = 111111
- and : 두 비트가 모두 1일 때만 1 → 101010 and 100011 = 10
- xor : 두 비트 중 하나만 1일 때 1 → 101010 xor 100011 = 111101
- inv : 비트를 모두 뒤집음
- shl, shr, ushr : 비트를 왼쪽 또는 오른쪽으로 이동
🚀 infix 함수 사용으로 가독성 높이기
Kotlin에선 infix 함수를 지원해서 비트 연산자를 더 직관적으로 쓸 수 있어!
fun main() { println(1 and 0) // 0 println(1 or 0) // 1 println(1 xor 0) // 1 println(0.inv()) // -1 println(2 shl 2) // 8 println(2 shr 2) // 0 println(2 ushr 2) // 0 }
- and, or, xor 등 연산자를 중위 표기법(infix notation) 으로 사용하면 코드가 더 깔끔해져!
📌 요약 정리
✔ 비트 연산자로 효율적인 데이터 처리 가능
✔ infix 함수 사용해 가독성 높은 코드 작성
✔ shl, shr, ushr로 비트를 이동시키며 데이터 다루기
✔ Kotlin의 비트 연산자는 정수 타입에서만 사용할 수 있음'Android 개발 > Kotlin' 카테고리의 다른 글
(1분 읽기) Kotlin data class vs class 완벽 비교! 🚀 (0) 2025.02.27 (30초 읽기) Kotlin 산술 및 할당 연산자 🧮 (0) 2024.07.01 (1분 읽기) Kotlin에서 유니코드 활용 🌍 (0) 2024.06.30 (1분 읽기) Kotlin Char 타입 : 문자 다루기 끝판왕! 🚀 (0) 2024.06.29 (1분 읽기) Kotlin 기본 타입 : 값 할당하기 🚀 (0) 2024.06.29