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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhxueqiu 中级黑马   /  2013-6-22 00:29  /  1192 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大侠们
怎样把十进制数43用>>>右移成16进制.

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 新人鼓励

查看全部评分

3 个回复

倒序浏览
:L:L传智618的同学报上名字///
回复 使用道具 举报
本帖最后由 ytblght55 于 2013-6-22 02:09 编辑
  1. /*
  2. *  需求:十进制数43用>>>右移成16进制.
  3. *  思路:定义一个转换的方法tohex(int num)十进制的值,16进制是进行倒除法取余数,所用将num&15用temp记录该值
  4.             用temp记录该值,判断&这个数是否超过9,超过将其强转成字符打印出来.
  5.    步骤:
  6.         1,定义一个方法取名为tohex
  7.         2,转换成16进制是进行倒除法,取余数,所用将num&15用temp记录该值
  8.         3,16进制超过9使用A-F来表示的,所以我们要判断temp是否超过9如果超过强制转换成字符
  9.         4,运行结果你要到倒着看才是对的哦,没有将数值倒置
  10.         5,你可以把我注释掉的里面的代码放开就可得得到一个比较直观的值(这个老师还没讲到,我注释掉了)
  11. * */
  12. public class Test14 {
  13.         public static void main(String[] args) {
  14.                
  15.                 // TODO Auto-generated method stub
  16.                 toHex(43);
  17.         }
  18.         public static void toHex(int num){
  19.                 //StringBuffer sb = new StringBuffer();
  20.                 for (int x=0 ;x<8 ;x++ )//一组二进制数是00000000,定义循环的次数小于8
  21.                 {
  22.                         int temp = num & 15;//将num&15用temp来记录该值
  23.                         if (temp > 9)//因为16进制10到15是用字符A-F表示,通过if来判断
  24.                                 System.out.print((char)(temp-10+'A'));//强制转换成字符型,输出
  25.                         //sb.append((char)(temp-10+'A'));
  26.                         else
  27.                                 System.out.print(temp);//如果小于9直接输出
  28.                         //sb.append(temp);
  29.                         num = num >>>4;//无符号右移4位
  30.                 }
  31.                 //System.out.println(sb.reverse());
  32.                 }
  33.         }

  34. <FONT color=yellowgreen>//希望能帮到你!!!
  35. </FONT>
复制代码

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 赞一个!

查看全部评分

回复 使用道具 举报
ytblght55 发表于 2013-6-22 01:39
传智618的同学报上名字///

张雪秋 你谁呀。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马