java学习总结(一)进制转换

使用Java语言完成二进制、八进制、十进制的进制转换,熟悉进制转换算法。

一、算法思想

       实现进制转换的核心操作是与运算,通过和基数做与运算得到相应进制每一位的值。通过将值倒叙输出即可得到转换后的相应进制的值。

二、数组的应用

       对于十六进制的转换,会出现字母,这时应用数组的查表法,即数组的角标与数组的元素实现一一对应的查表关系。这是数组的常用操作。

        补充知识:数组的使用:如果数据出现了对应关系,而且对应关系的一方是有序的数字编号 。并作为角标使用,这时就必须想到数组的使用。

三、程序实现

//进制转换
class JZZHDemo
{
	public static void main(String[] args){
		
		ToHex(26);    //十六进制
		ToBinary(26);  //二进制
		ToOctal(26);    //八进制
		
	}
	
	
	public static void ToHex(int num){
		trans(15, 4, num);
	}
	
	public static void ToOctal(int num){
		trans(7, 3, num);
	}
	
	public static void ToBinary(int num){
		trans(1, 1, num);
	}
	
	public static void trans(int base, int offset, int num){
		
		if(num == 0){
			System.out.println(num);
			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];    //temp通过查表数组的转化,将对于十六进制值存储到数组arr中
			num = num >>> offset;      //num 右移
		}
		
		for(int x=pos; x<arr.length; x++){       //x=pos while循环结束后pos最后的值为起始位置。
			System.out.print(arr[x]);
		}
		System.out.println();
		
	}
	
}


四、总结

进制转换算法做为基础算法,对于初学者来讲还是要熟练掌握的,在进制转换的算法中包含了很多思想,也存在一些小细节,以后要多基础算法多加练习和掌握。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值