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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class ArrayDemo3
  2. {
  3.         public static void main (String args [])
  4.         {
  5.                 toHex(60);
  6.                 toOctal(60);
  7.                 toBinary(60);
  8.         }
  9.         //十进制转换十六进制
  10.         public static void toHex(int num)
  11.         {
  12.                 trans(num, 15, 4);
  13.         }
  14.         //十进制转换八进制
  15.         public static void toOctal(int num)
  16.         {
  17.                 trans(num,7,3);
  18.         }
  19.         //十进制转换二进制
  20.         public static void toBinary(int num)
  21.         {
  22.                 trans(num, 1, 1);
  23.         }
  24.         public static void trans(int num, int a, int b)
  25.         {
  26.                 if (num == 0)
  27.                 {
  28.                         System.out.print("0");
  29.                         return;
  30.                 }
  31.                 char [] chs = {'0','1','2','3','4','5', //定义一个表
  32.                                            '6','7','8','9','A',
  33.                                            'B','C','D','E','F'};
  34.                 //数据过多的时候,定义一个容器,先临时存放。
  35.                 char [] arr = new char [32];
  36.                 //定义数组的角标变量。
  37.                 int pos = arr.length;
  38.                 while (num != 0)
  39.                 {
  40.                         int temp = num & a;   //转换不同的进制,与上不同的a。
  41.                         arr[--pos] = chs[temp];//从定义的表里面查找到的元素倒着存储到定义过的数组中去。
  42.                         num = num >>> b;      //转换不同的进制,右移不同位置。
  43.                 }
  44.                 for (int x=pos; x<arr.length; x++)
  45.                 {
  46.                         System.out.print(arr[x]);//把存储到表中的元素,按照顺序打印出来。
  47.                 }
  48.                 System.out.println();
  49.         }
  50. }
复制代码


0 个回复

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