为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Max丶 2016-05-16 23:56:15
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的赋值啊?
查看完整描述

1 回答

?
hiberk

TA贡献6条经验 获得超3个赞

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个数字进行求和

查看完整回答
反对 回复 2016-05-18
  • 1 回答
  • 1 关注
  • 1429 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信