黑马程序员技术交流社区
标题:
进制转换。答案不正确,求解
[打印本页]
作者:
追逐
时间:
2014-3-7 08:34
标题:
进制转换。答案不正确,求解
/*
写一个十进制转换成十六进制的类
*/
class JinZhiTest {
//写一个十进制转换成十六进制的函数
public static void toHex(int num) {
//定义一个容器
StringBuffer sb = new StringBuffer();
//写一个循环
for(int i = 0; i < 8; i++) {
//先2用这个数魔以十五,然后把得出的结果存储到一个变量中
int temp = num % 15;
if(temp > 9) {
sb.append((char)(num - 10 + 'a'));
} else {
sb.append(temp);
}
//把六十右移四位
temp = temp >>> 4;
}
System.out.println(sb.reverse());
}
public static void main(String[] args) {
toHex(60);
}
}
作者:
chen_x
时间:
2014-3-7 09:06
好几个地方有问题,改了下,可以对照参考下,改的地方都有注释~
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);
}
}
作者:
追逐
时间:
2014-3-7 09:25
好的。谢谢各路大神,找到错误了
作者:
小脚印
时间:
2014-3-7 09:26
class JinZhiTest {
//写一个十进制转换成十六进制的函数
public static void toHex(int num) {
//定义一个容器
StringBuffer sb = new StringBuffer();
//写一个循环
for(int i = 0; i < 8; i++) {
//先2用这个数魔以十五,然后把得出的结果存储到一个变量中
int temp = num % 15; //[color=DarkOrchid]应该是与15相与“&”[/color]
if(temp > 9) {
sb.append((char)(num - 10 + 'a'));
} else {
sb.append(temp);
}
//把六十右移四位
temp = temp >>> 4;
}
System.out.println(sb.reverse());
}
public static void main(String[] args) {
toHex(60);
}
}
复制代码
作者:
追逐
时间:
2014-3-7 09:42
import java.util.*;
/*
写一个十进制转换成十六进制的类
*/
class JinZhiTest {
//写一个十进制转换成十六进制的函数
public static void toHex(int num) {
//定义一个容器
StringBuffer sb = new StringBuffer();
//因为只有八个进制为。所以循环小于8
for(int i = 0; i < 8; i++) {
//先用这个数与上15
int temp = num & 15;
if(temp > 9) {
sb.append((char)(temp - 10 + 'A'));
} else {
sb.append(temp);
}
//计算完后再把num右移四位
num = num >>> 4;
}
System.out.println(sb.reverse());
}
public static void main(String[] args) {
toHex(320);
}
}
修改后的代码,没错误了。谢谢各路大神
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2