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

来源:互联网 发布:制造杀人犯主人公 知乎 编辑:程序博客网 时间:2024/05/22 16:06
/*十进制转换到十六进制使用 与,移位操作,三目运算符,强制类型转换*///当前存在结果是逆向的问题,打算用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");/*//方式1while(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("   ");*///方式2for(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'));elsehex[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]);elseSystem.out.print(hex[i]);}}}

0 0
原创粉丝点击