java小练习---进制之间的转换

需求:十进制转换为十六进制、八进制、二进制

思路:十六进制、八进制、二进制均是大量的、有序的、有对应关系的一组数据,可以用查表法解决

class  ArrayTest9
{
	public static void main(String[] args) 
	{
		int num=60;
		String str_hex=toHex(num);
		String str_oct=toOctal(num);
		String str_bin=toBinary(num);
		System.out.println("hex="+str_hex);
		System.out.println("octal="+str_oct);
		System.out.println("binary="+str_bin);
		//System.out.println("Hello World!");
	}
	//十进制-->十六进制
	public static String toHex(int num)
	{
		return "0x"+trans(num,15,4);
	}
	//十进制-->八进制
	public static String toOctal(int num)
	{
		return "0"+trans(num,7,3);
	}
	//十进制-->二进制
	public static String toBinary(int num)
	{
		return trans(num,1,1);
	}


	/*需求:用查表法十进制转其他进制*/
	public static String trans(int num,int base,int offset)
	{
		//1、建表
		char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
		//2、创建临时容器
		char[] arr=new char[32];
		//3、定义临时容器的索引
		int index=arr.length;
		//4、通过循环转换num并且存入临时容器
		while(num!=0)
		{
			int temp=num&base;
			arr[--index]=chs[temp];
			num=num>>>offset;
		}
		//5、调用打印方法将容器字符转换为字符串返回
		return toString(arr,index);
	}
	public static String toString(char[] arr,int index)
	{
		//1、定义一个字符串变量存字符数组元素
		String temp="";
		for (int x=index;x<arr.length ;x++ )
		{
			temp=temp+arr[x];
		}
		return temp;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值