public class Jinzhi {
//进制转换函数,M进制转换为N进制,初始串为str,不考虑初始串的非法输入,输入都为正整数
public static String MCovertToN(int M,int N,String str){
int currentnum=0;//当前位
int mod=0;//余数
String shang=str;//商串
String result="";//存放转换后的结果串
String temp_shang="";//存放中间商串
while(shang.length()>0){
temp_shang="";
mod=0;
for(int i=0;i<shang.length();i++){//该循环即从字符串的最高位开始做除法,具体参照整数除法的过程
currentnum=charToInt(shang.charAt(i));
if(currentnum==-1)return "Error,invilade";
mod=mod*M+currentnum;
temp_shang+=intToChar(mod/N);//存每一位上的商
mod=mod%N;
}
result=intToChar(mod)+result;//将余数放入结果;
int i=0;
shang=temp_shang;
for(;i<shang.length();i++){//去掉商前面的0
if(shang.charAt(i)!='0')break;
}
shang=shang.substring(i);
}
return result;
}
private static char intToChar(int i) {// int 转char
// TODO Auto-generated method stub
进制转换(长正整数)
最新推荐文章于 2023-12-03 20:35:50 发布
这是一个Java程序,实现了将任意进制的长正整数转换为另一种进制的功能。通过逐位除法的方式,从最高位开始进行转换,确保了正确性和效率。同时,提供了intToChar和charToInt辅助方法,用于字符和整数之间的转换。

&spm=1001.2101.3001.5002&articleId=77532538&d=1&t=3&u=362263a5803d4c70b1905f9cc5cfa19a)
858

被折叠的 条评论
为什么被折叠?



