1. 程式人生 > 其它 >進位制間的轉換,不使用Interger.toBinaryString(int) 等方法

進位制間的轉換,不使用Interger.toBinaryString(int) 等方法

十進位制轉二進位制


import java.util.Scanner;
class Main {
  public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    int numberNotChange = 0;
    
    do{
      //獲得輸入de整數
      System.out.print("\nEnter a int number: ");
      numberNotChange = input.nextInt();
      int number = numberNotChange;
      String numbertoBinaryString = "";
      //如果為負數變成正數
      number = (number >=0 ? number : (0 - number));
      //如果為0輸出值並結束程式
      if(number == 0)
        System.out.print(number + " 的二進位制是: 0");
      //計算不為0的二進位制值       
      while(number != 0){
        numbertoBinaryString = (number % 2) + numbertoBinaryString;
        number = number / 2;
      }
      //輸出二進位制
      if(numberNotChange!=0)
        System.out.print((numberNotChange > 0) ? numberNotChange + " 的二進位制是: "  
                       + numbertoBinaryString : numberNotChange + " 的二進位制是: -"  
                       + numbertoBinaryString);
    }while(numberNotChange != 0);
        input.close();
  }
}

十進位制轉十六進位制