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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 追逐 高级黑马   /  2014-3-7 08:34  /  831 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
写一个十进制转换成十六进制的类
*/
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);
        }
       
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

4 个回复

倒序浏览
好几个地方有问题,改了下,可以对照参考下,改的地方都有注释~
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);
        }
        
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
好的。谢谢各路大神,找到错误了
回复 使用道具 举报
  1. class JinZhiTest {

  2.          //写一个十进制转换成十六进制的函数
  3.         public static void toHex(int num) {
  4.                  
  5.                  //定义一个容器
  6.                 StringBuffer sb = new StringBuffer();

  7.                  //写一个循环
  8.                 for(int i = 0; i < 8; i++) {
  9.                          //先2用这个数魔以十五,然后把得出的结果存储到一个变量中
  10.                         int temp = num % 15; //[color=DarkOrchid]应该是与15相与“&”[/color]
  11.                          if(temp > 9) {
  12.                                  sb.append((char)(num - 10 + 'a'));
  13.                          } else {
  14.                                  sb.append(temp);
  15.                          }
  16.                          //把六十右移四位
  17.                         temp = temp >>> 4;
  18.                  }
  19.                  System.out.println(sb.reverse());
  20.          }
  21.          
  22.          public static void main(String[] args) {
  23.                  toHex(60);
  24.          }
  25.          
  26. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
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);
        }
       
}

修改后的代码,没错误了。谢谢各路大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马