2016-07-27 3 views
-4

10 진수를 2 진수로 변환하려고하지만 일부 경우 128 진수로 변환하면 출력이 11111110이되고, 계산을 수정하려고했지만 동일한 출력으로 끝납니다.10 진수를 2 진수로 변환

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

here.이가 잘못된 것을 factorOfTwo''의 첫 번째 값 무엇을 확인 ? –

+0

코드를 읽으 려 시도 할 때 일관되게 코드를 들여 쓰기 바랍니다. – khelwood

+1

[10 진수를 2 진 Java로 변환] 가능한 복제본 (http://stackoverflow.com/questions/14784630/converting-decimal-to-binary-java) – UserF40

답변

2

숫자를 거꾸로 쓰는 데 문제가 있습니다. 먼저 가장 높은 비트부터 시작해야합니다.

십진수로 쓰는 경우 가장 높은 비트로 시작합니다. 1235는 1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1

0

쉬운 방법을 사용하여 다음을 사용하십시오. Integer.toBinaryString(int i) 다음 문자열을 콘솔에 인쇄하십시오.

-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); 
     } 

} 
관련 문제