码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA 学习 进制转换

时间:2015-08-08 19:56:39      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:java   编程   

写一个函数trans();

   1 能够进行十进制转二进制

   2 能够进行十进制转八进制

   3 能够进行十进制转十六进制

   4 封装函数

代码实现:

class ArraryTest {
	public static void main(String[] args) {
		int num=60;
		String str_Bin=toBinary(num);
		String str_Oct=toOctal(num);
		String str_Hex=toHex(num);
		System.out.println("自己定义的转换");
		System.out.println("bin: "+str_Bin);
		System.out.println("oct: "+str_Oct);
		System.out.println("hex: "+str_Hex);
		System.out.println("系统自带的转换");
		System.out.println(Integer.toBinaryString(60));
		System.out.println(Integer.toOctalString(60));
		System.out.println(Integer.toHexString(60));
	}
	///十进制转十六进制
	public static String toHex(int num){
		return "0x"+trans(num,15,4);
	}
    ///十进制转二进制
	public static String toBinary(int num){
		return trans(num,1,1);
	}
    ///十进制转八进制
	public static String toOctal(int num){
		return "0"+trans(num,7,3);
	}
	///调用trans函数根据需求进行转换
	public static String trans(int num,int base,int offset){///base 按位与的数  offset 右移位数
		if(num==0)
			return "0";
        ///打表 完成进制转换
		char []chs={'0','1','2','3','4',
					'5','6','7','8','9',
					'A','B','C','D','E','F'};
		char []arr=new char[32];
		int index=arr.length;
		///具体操作
		while(num!=0){
			int temp=num&base;
			arr[--index]=chs[temp];
			num=num>>>offset;
		}
		return toString(arr,index);
	}
	///数字转字符串函数
	public static String toString(char []arr,int pos){
		String temp="";
		for(int i=pos;i<arr.length;++i){
			temp+=arr[i];
		}
		return temp;	
	}
}


运行结果:

技术分享

我的第一个JAVA程序感觉还好

版权声明:本文为博主原创文章,未经博主允许不得转载。

JAVA 学习 进制转换

标签:java   编程   

原文地址:http://blog.csdn.net/zp___waj/article/details/47361169

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!