java任意进制转换代码,java任意进制转换为十进制,Java实现任意进制转换

java任意进制转换代码,java任意进制转换为十进制,Java实现任意进制转换

本文主要详细介绍在Java中实现任意二进制转换的方法。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

本文分享Java实现任意二进制转换的具体代码,供大家参考。具体内容如下

问题描述

写一个程序实现任意十进制之间的转换。

(一)、进制转换思想

1.先把任意十进制转换成十进制。

2.将十进制系统转换为任意系统。

3.该算法结合了十进制利用率公式的转换和十进制调用函数的转换。

(二)、问题分析

1.输入当前的十进制系统。

输入当前小数m和保证m1。

公共静态void main (String[] args){

int l,m,n;

字符串l16

Scanner sc=新扫描仪(system . in);

System.out.println('请问当前数字的十进制(m1)是什么');

m=sc . nextint();

2.输入当前号码。

(1)m十进制数应保证每个数小于m

System.out.println('请输入当前数字,每个数字应小于' m ');

int temp=0,I=0;

(2)对于十以下的十进制,输入的是数值,采用l=sc . nextint();

(3)公式计算转换成十进制,可以调用Math的pow(m,I)函数计算m的I次幂;数值的每一位都乘以m I (I=0,1,2.)从右到左,余数(%)运算可以用10除;每一次,原始数据减少十倍,只保留整数部分(除运算:/),直到值为0。

如果(m=10){

l=sc . nextint();

而(l!=0){

临时=(l)*math.pow(m,i);

I=1;

l=l/10;

}

}

(4)对于大于十的十进制,输入为字符串类型,采用l16=sc . next();

(5)可以直接调用包Integer.valueOf(),将任意小数转换成小数。

否则{

l16=sc . next();

temp=Integer.valueOf(l16,m);

}

(6)所以实际上这里只使用了temp=Integer.valueOf(l16,m );整个问题就可以解决了,因为十以下的小数也可以看作字符串类型。这里介绍两种方法。

4.输入要转换的十进制系统。

这里,还是介绍两种方法。十以下的十进制和十以上的十进制分别处理。

System.out.println('要转换成多少位数(n1)');

n=sc . nextint();

(1)十进制采用公式,并将处理方法封装在一个类中(ConversionN)

(2)temp是上一段转换的十进制数,N是要转换的十进制数。

(3)将decimal temp转换为N的思路是:将当前数除以N取余数(%运算),得到的数放在右边第一位(相当于这个数乘以1);将数减少十倍,保留整数部分,继续除以n,将得到的数放在右边第二位(相当于数乘以10);依次循环,最后的数加在一起,就是转换后的N进制数。

public static int conversion n(int temp,int n){

int l=0,j=1;

while(n=10 temp!=0){

l=(temp % n)* j;

temp=temp/n;

j=j * 10

}

返回l;

}

(4)十进制或更多直接调用包Integer.toString()将十进制转换为任意制。

string L16=integer . tostring(temp,n);

System.out.println('这个数从' M '转换成' N '的结果是:' L16 ');

5.输出转换后的值。

(1)由于选择转换的十进制不同(十以下,十以上),输出路径也不同。

(2)三元运算符用于根据范围选择路径:十进制以下的路径1,十进制以上的路径2,n=1的路径3(提示输入错误)。

(3)结合Switch语句完成selection语句。

int a=n=10 n1?1: n10?2:3;

开关(a){

案例1:

base conversion base=new base conversion();

System.out.println('这个数从' m '转换成' n '的结果是:' base。ConversionN(temp,n));

打破;

案例二:

string L16=integer . tostring(temp,n);

System.out.println('这个数从' M '转换成' N '的结果是:' L16 ');

打破;

案例三:

System.out.println('输入有误');

打破;

}

}

(三)、完整代码

把上述代码整理

导入Java。util。*;

公共类基本转换{

公共静态void main (String[] args){

int l,m,n;

字符串l16

扫描仪sc=新扫描仪(系统。在);

System.out.println('请问当前数为几进制(m1)’);

m=sc。nextint();

System.out.println('请问要转换为几进制(n1)’);

n=sc。nextint();

System.out.println('请输入当前数,每个数字均要小于m);

int temp=0,I=0;

如果(m=10){

l=sc。nextint();

而(l!=0){

临时=(l)*math.pow(m,i);

I=1;

l=l/10;

}

}

否则{

l16=sc。next();

temp=Integer.valueOf(l16,m);

}

int a=n=10 n1?1: n10?2:3;

开关(一){

案例1:

基数换算基数=新基数换算();

System.out.println('该数由' m '进制转化为"不"进制的结果为:' base .ConversionN(temp,n));

打破;

案例二:

字符串L16=整数。tostring(temp,n);

System.out.println('该数由' m '进制转化为"不"进制的结果为:' L16);

打破;

案例三:

System.out.println('输入有误');

打破;

}

}

公共静态int转换n(int temp,int n){

int l=0,j=1;

while(n=10 temp!=0){

l=(temp % n)* j;

temp=temp/n;

j=j * 10

}

返回l;

}

}

(四)运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: