java 进制转换_Java之任意进制转换

问题描述:

现有的Java库函数有提供进制转换的方法

被封装在Integer对象中.

10进制转化其他进制     对应的方法,参数:n(原10进制数据),r(进制),     返回值

10进制转2进制     Integer.toBinaryString(n);     一个二进制字符串.

10进制转8进制     Integer.toOctalString(n);     一个八进制字符串

10进制转16进制     Integer.toHexString(n);     一个16进制字符串

10进制转 r 进制     Integer.toString(100, 16);     一个r进制字符串

具体实现:

public class Main {

public static void main(String[] args) {

int n = 16;

Integer.toHexString(n);//使用Integer对象的进制转换方法

System.out.println(n + "的八进制是:" + Integer.toOctalString(n));

System.out.println(n + "的二进制是:" + Integer.toBinaryString(n));

System.out.println(n + "的十六进制是:" + Integer.toHexString(n));

System.out.println(n + "的三进制是:" + Integer.toString(n, 3));

}

分析:可以写一个关于Java 任意进制转换的方法

利用StringBuilde 对象可随意更改其值,利用append()方法将值附加到缓冲区,

进制转换本质就是除留取余数;

代码测试

import java.util.Scanner;

public class jinzhizhuanhuan {

static char a[] =new char [36];

pubilc  static void{

for(int i = 0;i<10;i++) {

a[i]=(char)('0'+i);

}

for(int i=10;i

a[i]=(char)('A'+(i-10));

}

}

static String transRadix(String num,int fromRadix, int toRadix) {

int number=Integer.valueOf(num, fromRadix);

StringBuilder s=new StringBuilder();

while(number!=0) {

if(toRadix==0)

return null;

s.append(a[number%toRadix]);

number=number/toRadix;

}

return s.reverse().toString();

}

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

String s=sc.next();

System.out.println(transRadix(s,10,16));

}

}

效果:23

17h

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页