2015-05-29 5 views
0

У меня возникли проблемы с преобразованием шестнадцатеричного числа в строку в длинный, а затем обратно. Вот код, я использую:Long to HEX string

private void parseExperiment(){ 
    String str1 = "AA0F245C"; 
    long nr = Long.parseLong(str1, 16); 
    String str2 = Double.toHexString(nr); 
} 

Я хочу str2 быть такой же, как str1, но когда я печатаю str1, пг и str2 я получаю это:

str1: AA0F245C 
nr: 2853119068 
str2: 0x1.541e48b8p31 

Каждый знает, как это исправить ?

+0

... Почему вы разбор '' long' с Double.toHexString() '? –

ответ

14

Используйте Long.toHexString, если вы хотите, чтобы вернуть long еще раз.

Преобразование long в шестнадцатеричной строки с помощью Double.toHexString даст вам правильное представление double, которая отличается от таковой в long.

+0

Holy ****! Я полностью пропустил это! Как я это испортил !? – Chikage

2

Если вы используете Long.toHexString(nr); вы получите правильный ответ

+0

Holy ****! Я полностью пропустил это! Как я это испортил !? – Chikage