进制转换之查表法

       今天要开始自学Java了,加油!
       从我大学的第一次C语言课开始,老师就总是在反复强调两个词——算法、思想。如今学了java,开发思想会不同,但是对于数据本身的理解,没有太大的差别,毕竟这都是计算机...
       听毕向东老师讲进制的转化,此处主要是讲十进制转二进制、八进制、十六进制三个方法,因为三种方法存在着一定的相同处(思想本身的相同),所以最后提炼出可以公用的代码:

       为了方便大家测试,我还是给敲出来吧:
	//num:需要转换的数字,base:转换的进制数减1,offset:偏移量,二进制、八进制、十六进制分别为2,3,4
	public static void trans(int num,int base,int offset)
	{	
		//若该需要转换的数字为0,跳出
		if(num==0)
		{
			System.out.println(0);
			return;
		}
		//生成查表
		char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
		//生成用于查表的标记
		char[] arr=new char[32];
		int pos = arr.length;
		//以循环的方式去逐个计算被转换的每一位数据
		while(num!=0)
		{
			int temp = num & base;
			arr[--pos] = chs[temp];
			num = num>>>offset;
		}
		//由于存储时时逆序的,所以打印的时候要从后面开始输出
		for(int x=pos;x<arr.length;x++)
		{
			System.out.println(arr[x]);
		}
	}

       总的来说这部分就是这样的,如果有什么问题我们可以多交流,我现在谈不上技术能力,但是只要努力我们都会进步的,一起加油吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值