wangyun 发表于 2013-2-5 01:15:41

进制转换方法

十进制转换为二进制,八进制,十六进制的算法有许许多多,但是使用位运算来实现进制转化在效率上是非常高的。

代码如下:
public class Digit
{
    public final static char[] DIGITS = {
      '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' ,
    };

    /**
   * 进制转换
   * @param decimal 十进制数
   * @param shift 转换进制,1代表2进制,3代表8进制,4代表16进制
   * @return 返回转换结果
   */
    public static String changeDigit(int decimal, int shift) {
      char[] buf = new char;
      int charPos = 32;
      int mask = (1 << shift) - 1;
      do {
            buf[--charPos] = DIGITS;
            decimal >>= shift;
      }while (decimal != 0);

    return new String(buf, charPos, 32 - charPos);
    }

    public static void main(String[] args) {
      changeDigit(16, 4);
    }
}
页: [1]
查看完整版本: 进制转换方法