java任意进制转化
package aCM;
import java.util.Scanner;
public class B {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String s = cin.nextLine();
int x = cin.nextInt();
int y = cin.nextInt();
System.out.println(Transform(s,x,y));
}
//s:输入的数字 x:原数的进制 y:要转化成的进制
public static String Transform(String s,int x,int y) {
return new java.math.BigInteger(s,x).toString(y);
}
}
10->2大数转化 c++实现
#include<bits/stdc++.h>
using namespace std;
int main(){
char n[40], buf[200];
int num[40], len, i, len_str, c, tmp, j;
while (scanf("%s", n) != EOF){
for (len = 0; n[len]; len++){
num[len] = n[len] - '0';//先转化成整数,num里存储的是整数
}
i = 0, len_str = 0;
while (i < len){//len是数组的长度
buf[len_str++] = num[len - 1] % 2 + '0';//最后一位对2求余
c = 0;
for (j = i; j < len; j++){
tmp = num[j];
num[j] = (num[j] + c) / 2;
if (tmp & 1){//二进制位与运算,判断tmp是否为奇数
c = 10;
}
else
c = 0;
}
if (num[i] == 0)
i++;
}//buf数组存储二进制
for (int j = len_str - 1; j >= 0; j--){
printf("%c", buf[j]);
}
printf("\n");
}
return 0;
}