반응형
하드웨어 통신을 구현하다보면 Int형을 Byte Array형으로 나타내야하는 경우가 종종 있습니다.
코틀린으로 해당 방법을 구현하는 방법을 간단하게 알아보도록 하겠습니다.
<소스코드>
fun convertIntToByteArray(value: Int): ByteArray {
return byteArrayOf(
(value shr 24).toByte(),
(value shr 16).toByte(),
(value shr 8).toByte(),
value.toByte()
)
}
파라미터로 변경할 Int형 값을 받습니다.
Byte Array는 코틀린에서 제공하는 byteArrayOf()와 toByte()를 이용해 쉽게 구현할 수 있습니다.
또한, Int형 4byte이므로 4개의 바이트로 표현하며, 시프트연산자를 이용하면 쉽게 구현할 수 있습니다.
(단, 바이트오더 방식에 따라 빅앤디안(Big-endian)인지 리틀엔디안(Little-endian)인지에 따라
구현방식이 달라질 수 있습니다. 자바의 경우 빅엔디안 방식으로 되어있고,
리틀엔디안의 경우 배열의 순서(0,1,2,3)을 역순(3,2,1,0)으로 바꿔 구현하시면 됩니다.)
* 빅엔디안(Big-endian) : 상위바이트부터 순차적으로 저장하는 방식
* 리틀엔디안(Little-endian) : 하위바이트부터 순차적으로 저장하는 방식
* shr의 기능은 오른쪽으로 시프트 연산을 하는 Java의 '>>' 비트연산자와 동일한 기능을 하는 함수입니다.
반응형
'Android' 카테고리의 다른 글
[안드로이드 / Kotlin] 생체 인식 인증 사용하기 (0) | 2022.01.07 |
---|---|
[안드로이드 / Kotlin] 카카오 로그인 SDK v2 사용하기 (0) | 2022.01.07 |
[안드로이드 / Kotlin] 블루투스 상태 체크 (0) | 2021.12.11 |
[안드로이드 / Kotlin] 기기 해상도 가져오기 (0) | 2021.12.03 |
[안드로이드 / Kotlin] 네트워크 상태 체크 (0) | 2021.11.30 |