本帖最后由 周兴中 于 2012-6-25 09:50 编辑
如题:我知道是因为三元运算符中,"n1>9?(char)(n1-10+'A'):n1"由于n1是整数,所以结果被提升成了整型,我想问的是怎么样才能得到我想要的char类型?
int num = 60;
//获取60的最低4位,通过&15
int n1 = num & 15;
system.out.println(n1>9?(char)(n1-10+'A'):n1); //此处输出67,该怎么写才能得到char类型的值.
//要获取下一组四位,将60右移4位.
int temp = 60 >>> 4;
//对temp的值进行最低4位的获取.
int n2 = temp & 15;
system.out.println(n2>9?(char)(n2-10+'A'):n2); //输出3
这个代码是将十进制转成16进制,当n1不大于9的情况下,n1是要得到整型的,如果也被转换成char就没意义了.
是不是用三元运算符无法实现.?
|