2016-07-27 5 views
-4

Я пытаюсь преобразовать десятичный в двоичный, но некоторые из них, как при преобразовании 128 двоичных данных, дает мне 11111110, я попытался исправить вычисление, но все равно получаю тот же результат.Преобразование десятичного в двоичный (Java)

import java.lang.*; 

public class HA7BinaryErr { 
    public static void main(String[] argv) { 
     Scanner input = new Scanner(System.in); 
     int number = 0; 
     int factorOfTwo = 0; 
     // get number to convert from user 
     do { 
      System.out.println("Enter the number to convert (0-255): "); 
      number = input.nextInt(); 

     } while (number < 0 || number > 255); 
     System.out.println("The number " + number + " converted to binary is : "); 
     // convert to binary by successively dividing by larger factors of 2 
     for (factorOfTwo = 1; factorOfTwo <= 128; factorOfTwo *= 2) { 
      if (number/factorOfTwo >= 1) { 
       System.out.print("1"); 
       number -= factorOfTwo; 
      } else 
       System.out.print("0"); 
     } 

    } // end of main 
}// end of class 
+0

Что было первым значением 'factorOfTwo', что пошло не так для? –

+0

Пожалуйста, отсканируйте свой код последовательно, если вы попросите людей попробовать и прочитать его. – khelwood

+1

Возможный дубликат [Преобразование десятичной в двоичную Java] (http://stackoverflow.com/questions/14784630/converting-decimal-to-binary-java) – UserF40

ответ

2

У вас возникли проблемы с тем, что вы записываете номер назад. Вам нужно начать с самого старшего бита

for (int powerOfTwo = 128; powerOfTwo > 0; powerOfTwo /= 2) { 

Когда вы пишете в десятичной системе, вы начинаете с наивысшей мощности, например. 1234 - 1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1

0

Вы можете легко и быстро использовать: Integer.toBinaryString(int i) затем распечатать строку на консоли. Проверьте это here.

-1
public class DCTB { 


    public void convertor(int n) 
    { 
     for(int i=0;i<10;i++) 
     { 
     int arr=(int) (n%2); 
     n=n/2; 
     System.out.println(Integer.toString(arr)); 
     } 
    } 

    public static void main(String args[]) 
    { 
    DCTB obj=new DCTB(); 
    obj.convertor(10); 
     } 

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