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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 嘎路的米 中级黑马   /  2015-6-6 10:42  /  144 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马