java 进制转换(自己写的一个任意进制转换方法 请高手给我看看)

来源:百度知道 编辑:UC知道 时间:2024/06/05 22:36:00
public class Change {
private int i = 0;

private int j = 0;

private int num = 0;

private char[] data = new char[100];

public Change() {

}

/*
* public Change(int i, int j) { this.i = i; this.j = j; }
*/

public char test(int i, int j) {
if (j == 0) {
System.out.println("被除数是0!!");
return '*';
} else if (j > 1 && j < 10) {
while (i > j) {
data[num] = (char) (i % j);
num++;
i = (i / j);

}
data[num] = (char) (i);
return data[num];
}

else if (j == 10) {
System.out.println(i);

}

else if (10 < j && j < 17) {
while (i > j) {

data[num] = (char) (i % j);
switch (data[num]) {
case 12:
data[num] = (char) 'c';
break;
case 10:
dat

主要是你对(char)9这种判断的不准确,你以为这就是9,实则不是,这是9对应的码所对应的值
程序已经改好了,你好好看看吧
public class test49 {
private int i = 0;

private int j = 0;

private int num = 0;

private char[] data = new char[100];

public test49() {

}

/*
* public Change(int i, int j) { this.i = i; this.j = j; }
*/

public char test(int i, int j) {
if (j == 0) {
System.out.println("被除数是0!!");
return '*';
} else if (j > 1 && j < 10) {
while (i > j) {
data[num] = (char) (48+(i % j));
num++;
i = (i / j);

}
data[num] = (char) (48+i);
return data[num];
}

else if (j == 10) {
System.out.println(i);

}

else if (10 < j && j < 17) {
while (i > j) {

data[num] = (char) (i % j);
switch (data[num]) {
case 12:
data[num] = (char) 'c';
break