好几个地方有问题,改了下,可以对照参考下,改的地方都有注释~
class JinZhiTest {
//写一个十进制转换成十六进制的函数
public static void toHex(int num) {
//定义一个容器
StringBuffer sb = new StringBuffer();
//写一个循环
//for(int i = 0; i < 8; i++) {
//用while循环是不是更好些,循环条件应该是待转换数字不为0
while(num!=0){
//先2用这个数魔以十五,然后把得出的结果存储到一个变量中
int temp = num % 16;
if(temp > 9) {
sb.append((char)(temp - 10 + 'a'));//应该是temp-10+'a',不是num-10+'a'
} else {
sb.append(temp);
}
//把六十右移四位
num =num >>4;//应该是每次循环num右移4位,不是temp
}
System.out.println(sb.reverse());
}
public static void main(String[] args) {
toHex(60);
}
} |