2019年9月23日 星期一

二進位與十進位互轉

自行實作 :

1. decimalToBinary : 將數字除2求餘數與商,新增一個字串將每次的餘數串到最前面,商則覆蓋原本數字直到為0,跳出迴圈,返回二進位數字字串。
2. binaryToDecimal : 將二進位字串從第一個字元到最後一個依序個別乘上2的(字串長度-1)次方直到0次方,並相加,返回相加之後的十進位數字。

    public static String decimalToBinary(int n){
        String str = ""; 
        while(n!=0){ 
            str = n%2+str;
            n = n/2; 
        }
        return str;
    }



    public static int binaryToDecimal(String binStr){
         int sum = 0; 
         int len = binStr.length(); 
         for (int i=1;i<=len;i++){
            int dt = Integer.parseInt(binStr.substring(i-1,i));
            sum+=(int)Math.pow(2,len-i)*dt; 
         } 
         
         return sum; 
    }



使用函式 :

    String bsapi = Integer.toBinaryString(num);
    int diapi = Integer.parseInt(bsapi,2);



沒有留言:

張貼留言