java任意进制转换_java任意进制转换

java任意进制转换

前言

我们正常使用的是十进制,计算机使用的是二进制,初次之外还有很多不同的进制,但是转换方法都相似,这里就整理一下java的进制转换。

调用函数

十进制转十六进制

Integer.toHexString(int i)

十进制转八进制

Integer.toOctalString(int i)

十进制转二进制

Integer.toBinaryString(int i)

十六进制转十进制(二进制八进制类似)

Integer.valueOf("FFFF",16).toString()

写的代码

这里还写了一段java代码,可以用于进行16进制之内的转换,如果想要增加,只要修改radix数组即可。

两个函数,一个是其他进制转十进制的,一个是十进制转任意进制的。用的都是基础算法,按位乘和取余。

(话说我没有考虑过输入异常,比如0进制什么的)

static char[] radix = new char[]{'0','1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',

'e', 'f'};

static int transRadixtoTen(String num, int fromRadix) {

StringBuilder s = new StringBuilder(num);

int number = 0;

for (int i = 0; i < s.length(); i++) {

char temp = s.charAt(i);

if (temp <= '9' && temp >= '0') {

number += temp - '0';

} else if (temp <= 'z' && temp >= 'a') {

number += temp - 'a' + 10;

} else if (temp <= 'Z' && temp >= 'A') {

number += temp - 'A' + 10;

}

if (i != s.length() - 1) {

number *= fromRadix;

}

}

return number;

}

static String transRadixtoOther(String num, int fromRadix, int toRadix) {

int number = transRadixtoTen(num, fromRadix);

System.out.println(number);

StringBuilder s = new StringBuilder();

while (number != 0) {

s.append(radix[number % toRadix]);

number = number / toRadix;

}

return s.reverse().toString();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值