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程序感觉还好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值