黑马程序员技术交流社区

标题: 换代码实现进制的转换 [打印本页]

作者: 嘎路的米    时间: 2015-6-6 10:42
标题: 换代码实现进制的转换
  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 toBin(-6);
  4.                 toHex(-60);
  5.         }

  6.         // 十进制-->十六进制
  7.         public static void toHex(int num) {
  8.                 StringBuilder sb = new StringBuilder();// 定义一个容器,用于存储数据
  9.                 char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
  10.                                 'B', 'C', 'D', 'E', 'F' };
  11.                 while (num != 0) {// 如果数值不为0,则循环
  12.                         int temp = num & 15;// 取出num二进制中的最低4位
  13.                        
  14.                         // if (temp > 9) {
  15.                         // char ch = (char) (temp - 10 + 'A');//将大于9的数转成相应的字母
  16.                         // sb.append(ch);
  17.                         // } else {
  18.                         // sb.append(temp);// 将最低4位的十进制存入容器中
  19.                         // }

  20.                         sb.append(chs[temp]);

  21.                         num = num >>> 4;// 将进制无符号右移4位
  22.                 }
  23.                 System.out.println(sb.reverse());// 将容器中的数据反转再打印
  24.                 //结果:FFFFFFC4
  25.         }

  26.         // 十进制-->二进制
  27.         public static void toBin(int num) {
  28.                 StringBuilder sb = new StringBuilder();// 定义一个容器,用于存储数据
  29.                 while (num != 0) {
  30.                         int temp = num & 1;// 取出进制的最后一位
  31.                         sb.append(temp);// 将去到的值存入容器
  32.                         num = num >>> 1;// 将进制无符号右移一位
  33.                 }
  34.                 System.out.println(sb.reverse());// 将容器中的数据反转再打印
  35.                 //结果:11111111111111111111111111111010
  36.         }
  37. }
复制代码





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