Decimal, binary system conversion

Decimal -> Binary

import java.util.*;
public class No4_37 {
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.print("请输入十进制整数:");
        int a=input.nextInt();
        int b=a;
        int[] num=new int[32];
        for(int n=31;a!=0;n--){
            num[n]=a%2;
            a=a/2;
        }
        if(b<0){                          //负整数情况
            for(int n=0;n<32;n++){
            num[n]=((num[n]==0)?1:0);   //取反
            }
            num[31]+=1;               //加一
            for(int n=31;n>0;n--){
                if(num[n]==2){
                    num[n]=0;
                    num[n-1]++;      //满2进1
                }
            }           
        }
        for(int n=0;n<32;n++)
            System.out.print(num[n]);
    }
}

The above is very "straightforward" approach. . .
Next to a recursive:

public class show {
      public static void main(String[] args) {
        System.out.print(decimalToBinary(10));
      }

      public static String decimalToBinary(int value) {
         if(value==0){
             return "0";}
         if(value==1){
              return "1";}
         int n=value/2;
         int m=value%2;
         if(n==1){
             return "1"+m;
         }
         else{
             return decimalToBinary(n)+m;
         }
      }
    }

Binary -> Decimal

public class show {
      public static void main(String[] args) {
        System.out.print(binaryToDecimal("11101"));
      }

      public static int binaryToDecimal(String s) {
         if(s.length()==1){
             if(s.equals("1")){     //String不可变性啊啊啊。。。
                 return 1;
             }else{
                 return 0;
             } 
         }else{
             if(s.charAt(0)=='1'){
                 return (int)(Math.pow(2, s.length()-1))+binaryToDecimal(s.substring(1));
             }
             else{
                 return binaryToDecimal(s.substring(1));
             }
         }
      }
    }
Published 46 original articles · won praise 19 · views 50000 +

Guess you like

Origin blog.csdn.net/qq_28929579/article/details/51404644