A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/**
要求:算数60的十六进制表达方式
思路:1,先获取60二进制的后四位转化为十六进制
          2,再获取60二进制的前一组四位转化为十六进制
          3,判断所得数是否大于10,如果大于十要判断所得的字母
*/
class Zilian
{
        public static void main(String[] args)
        {
                int num=60,x,y,z,a,b;
                x=num&15;
                y=num>>>4;
                z=y&15;

               
                if(x>10)
                {
                        a=(char)('a'+(x-10));
                }
               
                else if(y>10)
                {
                        b=(char)('a'+(z-10));
                }
               
                else
                {
                        a=x;
                        b=z;
                }
                System.out.println("60的十六进制表达式为:0x"+b+a);
        }
}


运行结果报错是:可能未初始化变量a,b

我应该怎么修改?

3 个回复

倒序浏览
局部变量没有默认初始化值,所以必须手动初始化,因此,你可以int a=0,b=0;就可以了
回复 使用道具 举报
额,补充一下,你思路没问题,但是定义变量有问题,如果只是求60的十六进制,那么就不需要定义一个null变量,然后,这个题用循环再加上判断要好些,单独的判断,你这样是一定知道了60的二进制位有多少,然后定义多个变量,求出每四位的值赋给变量,但是如果一个数你不知道二进制有多少,那你这样就不方便了
回复 使用道具 举报
殷俊 发表于 2015-3-20 10:34
额,补充一下,你思路没问题,但是定义变量有问题,如果只是求60的十六进制,那么就不需要定义一个null变量 ...

恩恩 好的 多谢指点~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马