我是靠谱客的博主 紧张灰狼,这篇文章主要介绍Java 任意进制转换成10进制,现在分享给大家,希望可以做个参考。

import java.util.Scanner;
import java.lang.Math;
public class test4 {
public static void main(String[] args) {
System.out.println("请输入数据::");
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println("这是什么进制?::");
double R = sc.nextDouble();
Conversion2 cv = new Conversion2();
System.out.println("十进制为::");
System.out.println(cv.getnumber(str, R));
sc.close();
}
}
class Conversion2{
String str;
String prestr,laststr;
int num;
int getMiddle(String str)
{
this.str = str;
for(int i =0;i<str.length();i++)
{
if(str.charAt(i)=='.')
{
return i;
}
}
return str.length();
}
double deBgN(String str,double R)
{
double num=0;
int middle =getMiddle(str);
for(int i =0;i<middle;i++)
{
// System.out.println((int)Math.pow(2.0,middle-i-1));
if((int)str.charAt(i)>64)
{
// System.out.println((str.charAt(i)-'0'-7));
num=num+((str.charAt(i)-'0'-7)*(int)Math.pow(R,middle-1-i));
}
else
{
num=num+((str.charAt(i)-'0')*(int)Math.pow(R,middle-1-i));
}
}
return num;
}
double deEdN(String str,double R)
{
double num = 0.0;
int middle =getMiddle(str);
for(int i=str.length()-1;i>middle;i--)
{
if((int)str.charAt(i)>64)
{
num=num+((double)(str.charAt(i)-'0'-7)*Math.pow(R,(i-middle)*-1));
}
else
{
num=num+((double)(str.charAt(i)-'0')*Math.pow(R,(i-middle)*-1));
}
}
return num;
}
double getnumber(String str,double R)
{
return deEdN(str,R)+deBgN(str, R);
}
}

最后

以上就是紧张灰狼最近收集整理的关于Java 任意进制转换成10进制的全部内容,更多相关Java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部