java n进制_java 实现N进制转M进制

1. 把10进制转成N进制:除N取余,逆序排列

这里逆序排列使用StringBuilder类的reverse()函数来实现。

/**

* 10进制整数转换为N进制整数。 10进制转换为N进制的方法是:这个10进制数除以N,求出余数,并把余数倒叙排列。 除N取余,倒叙排列

* @param tenRadix

*            十进制整数

* @param radix

*            要转换的进制数,例如,要转成2进制数,radix就传入2

* @return radix进制的字符串

*/

public static String string10ToN(int tenRadix, int radix)

{

// 进制编码支持9+26=35进制

String code = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

StringBuilder buf = new StringBuilder();

int remainder = 0;

while (tenRadix != 0)

{

remainder = tenRadix % radix;// 求余数

tenRadix = tenRadix / radix;// 除以基数

buf.append(code.charAt(remainder));// 保存余数,记得要倒叙排列

}

buf.reverse();// 倒叙排列

return buf.toString();

}

2.把N进制数转成10进制数:按权展开

(1)这里的权就是N的ex次幂,例如2进制:1110=1*2^3+1*2^2+1*2^1+0*2^0 =8+4+2+0=14

所以这里需要一个求x的ex次幂的方法,这里用一个自定义的方法:

/**

* 返回x的ex次幂。

* @param x

* 底数

* @param ex

* 幂指数

* @return x的ex次幂

*/

public static int pow(int x, int ex)

{

int result = 1;

for (int i = 0; i < ex; i++)

{

result *= x;

}

return result;

}

当然也可以使用Math.pow()方法

下面是N进制转10进制的按权展开的方法:

/**

* 返回N进制对应的10进制数。

*

* @param N_num

*            N进制数

* @param radix

*            N进制计数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值