2015-05-30 2 views
-4
String number="00010001000100"; 

int con=Integer.parseInt(number.toString()); 

Output=10001000100. 

Примечания: Я хочу 00010001000100 как Integer без потери к нулю, даже если есть больше нуля в свинце, как 0000000100010001. Я хочу, чтобы конкретный разговор был целым. Я не могу установить нуль вручную, так как я работаю с двоичным и шестнадцатеричным.Преобразовать строку в целое число без потери нуля из свинца, IN андроида JAVA

+0

Что вы имеете в виду целого с ведущим нулем? – fzzfzzfzz

+0

Почему не 'Integer.parseInt (число, 2);' и 'Integer.toBinaryString (yourNum);' /'Integer.toHexString (yourNum); '? –

+0

Вы пытаетесь получить двоичное представление числа? –

ответ

1

Я не могу установить нуль вручную, поскольку я работаю с двоичным и шестнадцатеричным.

Предполагая, что вы пытаетесь преобразовать число в двоичную и пытается сохранить лидирующие нули вы можете попробовать это:

String.format("%16s", Integer.toBinaryString(yournumber)).replace(' ', '0') 

Здесь yournumber целое значение.

Если вы хотите, чтобы преобразовать строку в число без удаления ведущих нулей, то вы можете попробовать это:

yournumber.ToString("D16"); 

Здесь D десятичный и 16 это количество цифр.

+3

умное решение :) – Lrrr

+0

Я пытаюсь преобразовать строку в целое число без потери начального нуля. –

+1

@DhavalPatel: - Обновлен мой ответ. Надеюсь, это поможет! Также обратите внимание, что int означает математическое целое число. Числа 00009999 и 9999 - это точно такое же число, математически.Так просто int не возможно –

0

если вы храните '010' в виде int, он будет обрабатываться как восьмеричный. Для примера.

int a = 010; System.out.println (a); Выход: 8 Он будет обрабатывать его как номер OCTAL

Таким образом, вы не можете сохранить число, начинающееся с 0 в int, поскольку компилятор будет его выводить. Поэтому для этого нужно работать со строками только :)

+0

Тогда как я могу поддерживать преобразование в шестнадцатеричное целое String hex = Integer.toHexString (Integer.parseInt (номер)); –

+0

У меня есть строка, которая представляет двоичное число, например 0011000100, теперь я хочу преобразовать его в hex.Like двоичный в шестнадцатеричный. Поэтому для этого мне нужен точный ввод. Пожалуйста помоги. –

+0

Что именно вы хотите? Пожалуйста, четко сформулируйте свою проблему :) –

0

государственных статической силой а (String бинарной)

{ 
     int value=0; 
     int count=0; 
     for(int x=binary.length()-1;x>=0;x--) 
     { 
      value+=Integer.parseInt(binary.charAt(x)+"")*Math.pow(2,count++); 
     } 

     String hexa=Integer.toHexString(value); 
     System.out.println(hexa); 
    } 
+0

'Math.pow' - плохое предложение для этой задачи. (Использует 'double', неэффективно, сложно.) Лучше использовать бит-сдвиг или просто умножение. –

Смежные вопросы