通过查表法把十进制数转化成任意进制形式,是编程中进制转换问题

我们生活中最习惯的进制表示形式是十进制,而计算机世界中用的是二进制,进制的转换在计算机编程中算是一个基础中的基础,这也是一个基本的数学问题,既然是一个数学问题,那就可以通过程序的方式来实现它,下面就通过一个编程小程序来实现进制的转化,如果你也喜欢编程,那就关注我们趣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

}

}

代码结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻风_huanfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值