Java day02 基本语句练习 进制转换

本文介绍了一种使用与运算、移位操作、三目运算符和强制类型转换将十进制数转换为十六进制数的方法,并通过实例演示了如何使用String解决结果逆向的问题。
/*十进制转换到十六进制
使用 与,移位操作,三目运算符,强制类型转换
*/
//当前存在结果是逆向的问题,打算用String解决
class DecToHex
{
	public static void main(String []args)
	{
		int num=39,res;//int型占4字节,有8个16位足够。
		char []hex=new char[8];
		res=num;
		int step=4;
		if(num==0)
			System.out.println("0x0000");
		/*//方式1
		while(num!=0)
		{
			
			if((num&15)<=9)
				System.out.print(num&15);
			else
			{
				switch(num&15)
				{
					case 10:System.out.print('A');
					break;
					case 11:System.out.print('B');
					break;
					case 12:System.out.print('C');
					break;
					case 13:System.out.print('D');
					break;
					case 14:System.out.print('E');
					break;
					case 15:System.out.print('F');
					break;
					default://保险起见
						System.out.println("error");
						break;
					//default不论放在switch的哪一分支,都是其他分支判断不符才执行,直到碰到break,switch才算结束
					//区间 用if,布尔逻辑用if
					//数值不多,是int,byte,shrot,long,字符串(1.7),枚举(1.5)型,使用switch稍快些
				}	
			}
			num>>=step;
		}
		System.out.println("   ");
			*///方式2
		for(int i=7;i>=0;i--)//while(num!=0)
		{
			
			
			res=num&15;//注意"与”的结果输出而不保留到下一步
			if(res>9)
				hex[i]=(char)(res-10+'A');//System.out.println((char)(res-10+'A'));
			else
				hex[i]=(char)(res+'0');//48);//System.out.println(res);
		//	System.out.println((res>9)?((char)(res-10+'A')):res); 三目运算符必须有运算结果
			//这句结果有问题,涉及类型转换,
			num>>>=step;
		}	
		System.out.print(" 39 的十六进制是  0x");
		for(int i=0;i<hex.length;i++)
		{
			if(i==hex.length-1)
				System.out.println(hex[i]);
			else
				System.out.print(hex[i]);
		}
	}
	
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值