十进制转二、八、十六进制

Java 提供位运算的操作,对于十进制的转换,采用位运算可大大提高转换速度

 

定义全局变量

public final static char digitals[]={
  '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};

 

调用函数Transfer时,shift为1代表转换为二进制,为3代表转换为八进制,为4代表转换为十六进制

 

 

 

public static String Transfer(int num,int shift)
 {
  int radix=1<<shift;
  int mask=radix-1;
  char buf[]=new char[32];
  int pos=32;
  do
  {
   int temp=num & mask;
    buf[--pos]=digitals[num & mask];
    num>>=shift;
  }while(num>0);
  return new String(buf,pos,32-pos);
  
 }

 

 

附二进制转十进制

/**
  * 二进制转十进制
  * @param binarystr
  * @param shift
  * @return
  */
 public static long BinaryToShi(String binarystr)
 {
  long temp=0;
  for(int i=binarystr.length()-1;i>=0;i--)
   temp+=(binarystr.charAt(binarystr.length()-1-i)-48)<<i;
  
  return temp;
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值