java 进制之间的转换 10进制转化为n进制 n进制转化为10进制 10进制小数转化为n进制小数(java)
程序员文章站
2024-03-15 12:48:47
...
n进制之间转换
10机制转化为其他进制
/**
* 十进制转化为n进制
* @param number(十进制数)
* @param n(转化的机制)
* @return
*/
private static int conver10ToN(int number, int n) {
int result = 0;
StringBuilder sb = new StringBuilder();
while(number > 0){
sb.append(number % n);
number = number / n;
}
result = Integer.parseInt(sb.reverse().toString());
return result;
}
n进制转化为10进制
/**
* n 进制转化为10进制
* @param number(n进制的数字)
* @param n(是什么进制)
* @return
*/
public static int converNTo10(int number, int n) {
int result = 0;
StringBuilder sb = new StringBuilder();
sb.append(number);
String str = sb.reverse().toString();
for (int i = 0; i <str.length() ; i++) {
int mm = Integer.parseInt(str.split("")[i]);
result = result + new Double(mm*Math.pow(n,i)).intValue();
}
return result;
}
10进制小数转化为其他进制
/**
* 10进制的小数转化为n进制,只取了十位小数
* @param mm
* @param n
* @return
*/
private static double conver10ToNByDecimal(double mm, int n) {
double result = 0.0;
StringBuilder sb = new StringBuilder();
sb.append("0.");
for (int i = 0; i < 10; i++) {
mm = mm * n;
int m = new Double(mm).intValue();
sb.append(m);
if(mm >= 1){
mm = mm - m;
}
}
System.out.println(sb);
return result;
}
主方法测试
~~~
方法一:
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int number = in.nextInt();
int a = conver10ToN(number,n);
方法二:
int a1 = converNTo10(number,n);
方法三:
double f_number = in.nextDouble();
int n1 = in.nextInt();
double a2 = conver10ToNByDecimal(f_number,n1);
~~~
上一篇: 筛法求素数