2017-12-02 3 views
0

숙제로서, 나는 수치가 16 진수로 변환되는 프로그램을 작성하도록 요청 받았다. 내가 만든 작품은 다소 효과적이지만 출력으로는 역전 된 숫자를 주며 해결 방법을 모릅니다 (첫 번째 프로그램입니다).숫자가 16 진수로 변환

public static void main(String[] args) { 
    System.out.println("Give a denary number: "); 
    Scanner sc = new Scanner(System.in); 
    int dec1 = sc.nextInt(); 
    String dec = Integer.toString(dec1); 
    int zmienna; 
    for(int i = 0; i < dec.length(); i++) { 
     zmienna = dec1 % 16; 
     dec1 = dec1/16; 
     if(zmienna == 10) { 
      System.out.print("A"); 
     } 
     else if (zmienna == 11) { 
      System.out.print("B"); 
     } 
     else if (zmienna == 12) { 
      System.out.print("C"); 
     } 
     else if (zmienna == 13) { 
      System.out.print("D"); 
     } 
     else if (zmienna == 14) { 
      System.out.print("E"); 
     } 
     else if (zmienna == 15) { 
      System.out.print("F"); 

     } 
     else if (zmienna == 0 & i == dec.length() - 1) { 
      System.out.print(""); 
     } 
     else { 
      System.out.print(zmienna); 
     } 

    } 


} 
+1

다만, 최종 값을 얻기 후에 수를 역. – Sam

답변

0

방금 ​​프로그램에서 약간 변경하면 문제가 해결되고 작동합니다. 방금 StringBuilder을 추가하고 문자를 추가하고 마지막으로 역순으로 추가했습니다. 이 방법의 두 손 대고 종류를 적용하는 경우, 숫자는 바닥에서 시작하기 때문에
코드

import java.util.Scanner; 


public class A { 
    public static void main(String[] args) { 
     System.out.println("Give a denary number: "); 
     Scanner sc = new Scanner(System.in); 
     int dec1 = sc.nextInt(); 
     StringBuilder sb =new StringBuilder(); 
     String dec = Integer.toString(dec1); 
     int zmienna; 
     for(int i = 0; i < dec.length(); i++) { 
      zmienna = dec1 % 16; 
      dec1 = dec1/16; 
      if(zmienna == 10) { 
       //System.out.print("A"); 
       sb.append("A"); 
      } 
      else if (zmienna == 11) { 
       //System.out.print("B"); 
       sb.append("B"); 

      } 
      else if (zmienna == 12) { 
       //System.out.print("C"); 
       sb.append("C"); 

      } 
      else if (zmienna == 13) { 
       //System.out.print("D"); 
       sb.append("D"); 

      } 
      else if (zmienna == 14) { 
       //System.out.print("E"); 
       sb.append("E"); 

      } 
      else if (zmienna == 15) { 
       // System.out.print("F"); 
       sb.append("F"); 


      } 
      else if (zmienna == 0 & i == dec.length() - 1) { 
       System.out.print(""); 
      } 
      else { 
       //System.out.print(zmienna); 
       sb.append(zmienna); 

      } 

     } 
     System.out.println(sb.reverse()); 
    } 
}