我们生活中最习惯的进制表示形式是十进制,而计算机世界中用的是二进制,进制的转换在计算机编程中算是一个基础中的基础,这也是一个基本的数学问题,既然是一个数学问题,那就可以通过程序的方式来实现它,下面就通过一个编程小程序来实现进制的转化,如果你也喜欢编程,那就关注我们趣IT科技吧。
已有的api
其实计算机编程语言中已经开发好了可以进行进制转化的api,可以进行十进制转化成其他进制,或者其他进制转换成十进制下面就给出这些api。
十进制转成二进制Integer.toBinaryString(int i);
十进制转成十六进制Integer.toHexString(int i);
十进制转成八进制Integer.toOctalString(int i);
其他进制转成十进制Integer.parseInt(“60”,其他进制);表示将其他进制的60转成十进制。
通过查表法实现进制转换
首先我们需要定义一个表,也就是数组,让他们的坐标和转换过来的值要对应,比如十六进制中10表示A,而不是10,所以我们要找到他们的对应关系,这样查表才能准确。
图片代码
文本代码
public class Test1 {
public static void main(String args[]){
tran(60,15,4);//这个表示将60进制求出十六进制,与的数为15右移4位
//八进制与7右移3,二进制与1右移1,十六进制与15右移4
}
public static void tran(int num,int base,int offset){//变量分别是数,与的数,右移的位数
char [] chs={'0','1','2','3', //查表法中的表
'4','5','6','7',
'8','9','a','b',
'c','d','e','f'};
StringBuffer sb=new StringBuffer();
while(num!=0){
int temp=num&base;
num=num>>>offset;
sb.append(chs[temp]);//算出的数据在数组中找,并且放到StringBuffer中
}
System.out.println(sb.reverse());//翻转sb
}
}
代码结果