黑马程序员技术交流社区
标题:
不知道这个那儿错了求大师指点
[打印本页]
作者:
你好我是潘机智
时间:
2015-3-20 10:12
标题:
不知道这个那儿错了求大师指点
/**
要求:算数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
我应该怎么修改?
作者:
殷俊
时间:
2015-3-20 10:20
局部变量没有默认初始化值,所以必须手动初始化,因此,你可以int a=0,b=0;就可以了
作者:
殷俊
时间:
2015-3-20 10:34
额,补充一下,你思路没问题,但是定义变量有问题,如果只是求60的十六进制,那么就不需要定义一个null变量,然后,这个题用循环再加上判断要好些,单独的判断,你这样是一定知道了60的二进制位有多少,然后定义多个变量,求出每四位的值赋给变量,但是如果一个数你不知道二进制有多少,那你这样就不方便了
作者:
你好我是潘机智
时间:
2015-3-20 10:44
殷俊 发表于 2015-3-20 10:34
额,补充一下,你思路没问题,但是定义变量有问题,如果只是求60的十六进制,那么就不需要定义一个null变量 ...
恩恩 好的 多谢指点~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2