How to convert a hex to a byte array in Kotlin

2 Answers

0 votes
fun hexStringToByteArray(hex: String): ByteArray {
    val len = hex.length
    val byteArray = ByteArray(len / 2)
    
    for (i in 0 until len step 2) {
        byteArray[i / 2] = ((Character.digit(hex[i], 16) shl 4) + Character.digit(hex[i + 1], 16)).toByte()
    }
    
    return byteArray
}


fun main() {
    val hexString = "1A2D3E4F"
    val byteArray = hexStringToByteArray(hexString)
    
    println(byteArray.joinToString(" ") { it.toString() })
}


   
/*
run:

26 45 62 79
 
*/

 



answered Feb 15, 2025 by avibootz
0 votes
fun main() {
    val hexString = "1A2D3E4F"
    
    val bytes = hexString.chunked(2)
                         .map { it.toInt(16).toByte() }

    println(bytes)
}


   
/*
run:

[26, 45, 62, 79]
 
*/

 



answered Feb 15, 2025 by avibootz

Related questions

2 answers 128 views
2 answers 114 views
1 answer 93 views
1 answer 119 views
1 answer 86 views
86 views asked Nov 19, 2024 by avibootz
...