"0х2" в число в Котлине? Казалось бы элементарно, я так понимаю это hex, пробовал .toInt(16) , toByte(16) и просто .toByte() .toInt(), но получаю:
java.lang.NumberFormatException: For input string: "0x2"
Если вкратце, то скорее всего так: input.removePrefix("0x").toInt(16)
Если менее вкратце, то этот префикс это не сколько правильная запись hex-числа, сколько именно в языке программирования способ отличить, что вы сейчас будете писать hexadecimal literal. Поэтому если он у вас таки есть, то наверное его надо срезать
Т.е. грубо говоря программисты так чисто для себя отмечают в строках 16тиричный тип числа в строках? Надо вручную проверять его наличие и резать, а методы из коробки в ЯП работают с hex иначе?
это просто семантический маркер.
Ну т.е. условно говоря. У вас есть число 255 в десятичной системе. Если вы попробуете его записать в других системах, то правильно оно записываться будет как: Binary - 11111111 Hexadecimal - FF Поэтому если вы работаете с ними, то и ожидать лучше конечно FF. Но если вам нужно задать константу какую-нибудь в вашем языке программирования, то вам нужно понимать, куча единиц это 11 миллионов с копейками или просто 255, но в бинарной системе. Поэтому у вас есть префиксы. 11111111 - это 11 миллионов с копейками 0b11111111 - это 255 FF - это просто невалидная шляпа 0xFF - это 255
Обсуждают сегодня