Java中通過代碼得到int類型數值的二進制形式


一、完整代碼

public class BigInteger {

    int sing;
    byte[] val;
    
    public BigInteger(int val){
        // 將傳遞的初始值,按位取值,存入字節數組中
        int val2 = val;
        int i=0;
        while(val/2!=0){
            val = val/2;
            i++;
        }
        i++;
        this.val = new byte[i];
        int j=0;
        while(val2/2!=0){
            this.val[j++] = (byte) (val2%2);
            val2 = val2/2;        
        }
        this.val[j]=(byte) (val2%2);
    }
    public static void main(String[] args) {
        System.out.print("請輸入要轉換為二進制的數:");
        BigInteger bigInteger = new BigInteger(new Scanner(System.in).nextInt());
        for(int i=bigInteger.val.length-1;i>=0;i--){
            System.out.print(bigInteger.val[i]);
        }
    }
}

二、核心思想

  1. 以 byte[] 存取二進制
  2. 通過 wile() 對該數不斷除2,得到數組應設大小。
  3. 再次通過 while() 對該數的副本不斷除2,取余。放入 byte[] 數組
  4. 最后輸出

三、注意事項

  1. 計算數組應設長度時在最后加1:因為數組長度是從1開始,但代碼中 i 是從 0 開始。
  2. 數組反向輸出?:在取任意進制時,算法是先除得取。最后從最下層至上一層。一層一層獲取余數。並作為高位至代位擺放


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM