- /**
- public class OperateDemo {
- public static void main(String[] args){
- int num = 60;
- int n1 = num&15;
-
- //60 与上 15 0011 1100 & 0000 1111 得到 0000 1100(12)
-
-
- System.out.println(n1>9?((char)(n1-10+'A')):n1);
-
-
- //三目运算的判断,n1>9。
- //但是在这里,n1是int 类型,在运算了减10之后,与字符'A'相加,再做强制转换。好像不合适。
- //因为运算时,需要同一种类型做运算处理。
-
-
-
- num = num >> 4;
- int n2 = num &15;
- System.out.println(n1>9?((char)(n2-10+'A')):n2);
-
- //这里的结果也类似如上
-
- }
- }
- */
- //不妨试试换一种语句
- public class OperateDemo {
- public static void main(String[] args){
- int num = 60;
- int n1 = num & 15;
- if (n1 > 9){
- char x = (char)(n1 - 10 + 'A');
-
- //先定义一个为char类型的变量,通过你原本的三目运算的条件,换成if else语句。(如下也是)
-
- System.out.println(x);
- }
- else
- System.out.println(n1);
-
-
- num = num >> 4;
- int n2 = num & 15;
-
- if (n1 > 9) {
- char y = (char)(n2 - 10 + 'A');
- System.out.println(y);
- }
- else
- System.out.println(n2);
- }
- }
复制代码
我的看法,可能有不足,先供你参考。
|