10进制转换成其他进制

 

package math.number.convert;

public class ConvertNumber {
 
 private ConvertNumber() {};
 
 private static char[] digits = new char[] {
  '0', '1', '2', '3', '4', '5',
  '6', '7', '8', '9', 'a', 'b',
  'c', 'd', 'e', 'f', 'g', 'h',
  'i', 'j', 'k', 'l', 'm', 'n',
  'o', 'p', 'q', 'r', 's', 't',
  'u', 'v', 'w', 'x', 'y', 'z'
 };
 
 public static String toHexString(int number) {
  return toUnsignedString(number, 4);
 }
 
 public static String toOctalString(int number) {
  return toUnsignedString(number, 3);
 }

 public static String toBinaryString(int number) {
  return toUnsignedString(number, 1);
 }
 
 private static String toUnsignedString(int i, int shift) {
  char[] buf = new char[32];
  int charPos = 32;
  int radix = 1 << shift;
  int mask = radix - 1;
  
  do {
   buf[--charPos] = digits[i & mask];
   i >>>= shift;
  } while(i != 0);
  
  return getNumber(buf, charPos, (32-charPos));
 }
 
 private static String getNumber(char[] buf, int total, int count) {
  String str = "";
  for(int i=0; i<count; i++) {
   str += buf[total+i];
  }
  return str;
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值