public static void main(String[] args) {
System.out.println(TenTrans());
}
public static String TenTrans() {
System.out.println("请输入你想转到到的进制(输入2,8,16)");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int hex = 0, offset = 0;
switch (m) {
case 2:
hex = 1;
offset = 1;
break;
case 8:
hex = 7;
offset = 3;
break;
case 16:
hex = 15;
offset = 4;
break;
}
return TenTransform(hex, offset);
}
/*
* 10进制转换16,8,2进制的简单方法 1:16进制每次&15取最低四位 右移四位/8进制&7 右移3位 /2进制&1 右移1
*/
public static String TenTransform(int hex, int offset) {
System.out.println("请输入你需要转换的10进制数(不要有空格)");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
sc.close();
int k = 0;
char[] arr = new char[32];
for (int i = 0; i >>= offset;
}
// 标记出非零起点
int key = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != '0') {
key = i;
break;// 找到第一个以后就中断循环退出
}
}
// 创建一个新的数组,长度为非零位置到结尾
char[] result = new char[arr.length - key];// key位置的长度是key+1
for (int i = 0; i < result.length; i++) {
result[i] = arr[key + i];
}
// 不能返回Int类型的结果 ,因为16进制有字母
return new String(result);
}