hex To ULong
Начиная с Kotlin: 2.2
inline fun String.hexToULong(format: HexFormat = HexFormat.Default): ULong
Разбирает значение ULong из этой строки, используя указанный формат.
Строка должна соответствовать структуре, определённой форматом. Обратите внимание, что на разбор числового значения влияет только свойство HexFormat.number экземпляра формата.
Входная строка должна начинаться с префикса и заканчиваться суффиксом, определёнными в свойстве HexFormat.number. Между ними также должна содержаться хотя бы одна шестнадцатеричная цифра. Если количество шестнадцатеричных цифр превышает 16, лишние цифры в начале должны быть нулями. Это гарантирует, что значение, представленное шестнадцатеричными цифрами, помещается в 64-разрядное ULong. Разбор выполняется без учёта регистра, включая шестнадцатеричные цифры, префикс и суффикс.
Сведения о доступных параметрах формата и их влиянии на разбор см. в HexFormat.NumberHexFormat.
Возвращает
значение ULong, разобранное из этой строки.
Параметры
объект HexFormat, используемый для разбора; по умолчанию — HexFormat.Default.
Выбрасывает
если эта строка не соответствует указанному формату или если шестнадцатеричные цифры представляют значение, которое не помещается в ULong.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
// Using the default format
println("3a".hexToLong()) // 58
// Parsing is case-insensitive
println("3A".hexToLong()) // 58
// Up to 16 hexadecimal digits can fit into a Long
println("ffffffffffffffff".hexToLong()) // -1
// Excess leading hexadecimal digits must be zeros
println("00ffffffffffffffff".hexToLong()) // -1
// "010000000000000000".hexToLong() // will fail with IllegalArgumentException
// Parsing an ULong results in the unsigned version of the same value
// In this case, (-1L).toULong() = ULong.MAX_VALUE
println("ffffffffffffffff".hexToULong()) // 18446744073709551615
// Using a custom format
val format = HexFormat { number.prefix = "0x" }
println("0x3A".hexToLong(format)) // 58
// Parsing fails if the input string does not conform to the specified format.
// In this case, the prefix is not present.
// "3A".hexToLong(format) // will fail with IllegalArgumentException
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.text/hex-to-u-long.html