黑马程序员技术交流社区

标题: 请教:关于十进制转十六进制的循环语句 [打印本页]

作者: 黑龙江—刘鹏    时间: 2012-7-8 14:22
标题: 请教:关于十进制转十六进制的循环语句
本帖最后由 黑龙江—刘鹏 于 2012-7-8 14:47 编辑

class lianxi7
{
public static void main(String[] args)
{
  
  toHex(60);
}
public static void toHex(int num)
{
  for(int x=0;x<8;x++)
  {
    num = num%15;
    if(num>9)
     System.out.print((char)(num-10+'A'));
    else
     System.out.print(num);
    num = num>>>4;
   
   
  }
}
}
嗯 这个我知道 num=num%15;应该是 int temp= num%15 而下面()中的num用temp代写 结果是3c。
如果就按这个代码来执行的话 打印出来的结果却是00000000,那么num= num%15 的时候 num的值为12,
那么 (char)(num-10+‘A’)=c  那么至少有个值是c呀 为什么结果却是00000000.

作者: 邵阳    时间: 2012-7-8 14:44
你错了好多代码啊
class lianxi7
{
public static void main(String[] args)
{
  
  toHex(60);
}
public static void toHex(int num)
{
  for(int x=0;x<8;x++)
  {
    int temp = num&15;       //num改成temp,%号改成&号
    if(temp>9)
     System.out.print((char)(temp-10+'A'));
    else
     System.out.print(temp);
    num =num>>>4;
   
   
  }
}
}
作者: 黑龙江—刘鹏    时间: 2012-7-8 14:46
邵阳 发表于 2012-7-8 14:44
你错了好多代码啊
class lianxi7
{

{:3_58:}啊 ! 这么重大的失误啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2