进制转换代码

 //十进制——>二进制
 public static void toBin(int num)
 {
  //定义一个容器存储数据。
  StringBuffer sb=new StringBuffer();
  while(num>0)
  {   
   sb.append(num%2);
   num=num/2;
  }
  System.out.println(sb);
  System.out.println(sb.reverse());
 }
 //十进制——>十六进制
 public static void toHex(int num)
 {
  StringBuffer sb=new StringBuffer();
  for(int x=0;x<8;x++)    //一个十进制 占32位! 4各位为一组, 所以循环8次可以循环完
  {
   int temp=num & 15;
   if(temp>9)
    //System.out.println((char)(temp-10+'A'));
    sb.append((char)(temp-10+'A'));
   else
    //System.out.println(temp);
    sb.append(temp);
   //无符号右移4位;
   num=num>>>4;
  }
  System.out.println(sb.reverse());
 }
 //查表法;
 public static void toHex1(int num)
 {
  if(num==0)
  {
   System.out.println(0);
   return;
  }
  char[] chs={'0','1','2','3','4','5',
    '6','7','8','9'
    ,'A','B','C','D','E','F'}; 
  
  //定义一个临时容器;
  char arr[]=new char[8];       //字符数组默认为'\u0000',每4个位为一组,数组长度8位可以存储32位数
  int pos=arr.length;
  while(num!=0)       //用for时 会出现空位!!改为while
  {
   int temp=num & 15;
   arr[--pos]=chs[temp];    //第一次存取时,倒序存储!!
   num=num>>>4;
  }
  //存储数据 arr进行遍历
  for(int x=pos;x<arr.length;x++){   //从有效位  打印数组
   System.out.print(arr[x]);
  }
 }
 //提取相同数据,数据转化;
 public static void trans(int num, int base, int offset)
 {
  char[] chs={'0','1','2','3','4','5',
     '6','7','8','9'
     ,'A','B','C','D','E','F'};  
   char arr[] = new char[32];
   int pos=arr.length;
   while(num!=0)
   {
    int temp=num & base;
    arr[--pos]=chs[temp];
    num=num>>>offset;
   }
   for(int x=pos; x<arr.length;x++)
   {
    System.out.print(arr[x]+",");
   }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_金手指

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值