/*十进制转换到十六进制
使用 与,移位操作,三目运算符,强制类型转换
*/
//当前存在结果是逆向的问题,打算用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]);
}
}
}Java day02 基本语句练习 进制转换
最新推荐文章于 2025-05-05 12:27:17 发布
本文介绍了一种使用与运算、移位操作、三目运算符和强制类型转换将十进制数转换为十六进制数的方法,并通过实例演示了如何使用String解决结果逆向的问题。
6万+

被折叠的 条评论
为什么被折叠?



