关于利用&运算和位移进行10进制到16进制的转化

public class java {
    public static void main (String[] args) {
        int x =60;//赋值变量x=60
        int num = x & 15;//对x的值转化为二进制,与15进行&运算得最后四位的值(十进制)
    switch (num){
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
        System.out.print((char)(num-10+'A'));
        break;
    default :
        System.out.print(num);
        break;//如果num=10~15的任意值取相应16进制字符,否组去本身相应的数值
    }
    int num1=x>>4;//num1为x右移四位后的取值
    int num2=num1&15;
        if (num2>=0 && num2<=9){
            System.out.print(num2);
    }
        else{
            System.out.print((char)(num2-10+'A'));
        }
    }
}

这样求出来只能获得C3 ,如何将C ,3 在答案中进行拼接呢?刚学习JAVA其他运算方式与公式还没学习到,看毕向东毕老师的课程看到上述这么一个问题.

此外, 如果一个变量 有可能是数字也有可能是字符 能不能进行类似于char num =XXXX的赋值啊?

Max丶
浏览 1430回答 1
1回答

hiberk

char 赋值 类型为: char c='';  值必须在单引号 里面。  引号里面可以是数字、字符都可以。 如果是 引用类型赋值:int i=97;    char  c=(char)i  ;  必须将 i  的值转换为char 类型。  这里涉及到 基本类型转换的一个原则:高位赋给低位要强制转换!  你可以查一下 基本数据类型的 级别;最高位 是double类型数据;  拼接 只能是字符串,整型数据  电脑会自动给你求和;  所以想要拼接,你要保证相邻的两个 变量不能求和。比如这里 C  和3 拼接, 可以 String s=""+C+""+3+""+num+""+X   ;  我不知道你问题的具体意思,这里给你一个思路。 用空字符串 分割 他们,这样得到的就是一个  字符串  ;其中 不会对 3 num  x 这3个数字进行求和
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java