자바 10 진 7 진 또는 기타 진(개선)

디지털 회로 과정 에서 이런 방법 을 말 했 는데 나중에 잊 어 버 려 서 오랫동안 생각해 서 썼 다.
/**
 * 10    7  
 */
public static String toSeven(int number){
     
    String result="";
    String remain = "";
    while (number>=7){
     
        remain = String.valueOf(number%7);
        number = number/7;
        result = remain + result;
    }
    return String.valueOf(number)+result;
}

코드 즉 수학 이라는 것 을 깨 달 았 다.이것 은 단지 끊임없이 남 는 작은 방법 일 뿐 이지 만 기 교 는 매우 교묘 하 다.
위 에는 아주 오래된 시간 입 니 다.2020-03-28 23:20:32.
2020-10-30 시간 반 이 지난 개선 버 전
기타 진법 10 진법
사고방식:예 를 들 어 2 진법 1010 누적 곱 하기
십 진법 기타 진법
사고:누 적 된 것 을 제외 하고 마지막 으로 얻 은 비 0 의 상업 도 나머지 로 삼 는 다.
/***
 * @param var  deal value     
 * @param base the base of the converting value        
 * @return if var=10 base=2 decimal to binary         result = 1010
 */
public static String baseConvert(int var,int base){
     
    StringBuilder result = new StringBuilder();
    String remain = "";
    while(var!=0){
     
        remain = String.valueOf(var%base);
        var = var/base;
        result.insert(0,remain);
    }
    return result.toString();
}

/**
 * @param var the base
 * @param baseOfVar the base of var
 * @return the decimal value of var assume var = 1010 baseOfVar=2 return 10
 */
public static int toDecimal(int var, int baseOfVar){
     
    String s = String.valueOf(var);
    int result  = 0;
    int cirTime = 0;
    for (int i=s.length()-1;i>=0;i--){
     
        result+=Integer.parseInt(s.substring(i,i+1))*Math.pow(baseOfVar,cirTime);
        cirTime++;
    }
    return result;
}
public static int toDecimal(String var, int baseOfVar){
     
    int result  = 0;
    int cirTime = 0;
    for (int i=var.length()-1;i>=0;i--){
     
        result+=Integer.parseInt(var.substring(i,i+1))*Math.pow(baseOfVar,cirTime);
        cirTime++;
    }
    return result;
}

좋은 웹페이지 즐겨찾기