/*
需求:将用户输入的十进制数字进行进制转换。
*/
import java.util.Scanner;
class JinZhiZhuanHuan{
public static void main(String[] args){
System.out.println("本程序目的是将十进制转化为2进制或8进制或16进制");
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int x = sc.nextInt();
System.out.println("请输入您要转换成几进制");
int y = sc.nextInt();
int hh;
hh = x;
System.out.print(hh+"对应的"+y+"进制为"); //终于要输出结果啦!
int[] sh = new int [32];
char [] ch = new char []{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
if(y==2){ //十进制转2进制
if(hh==0) {
System.out.print("0");
}
for(int a = 0;a<32;a++){
int b = x&(y-1); // int b = x%y;
sh[a] = b;
x>>>=1;
}
}
else if(y==8){ //十进制转8进制
if(hh==0){
System.out.print("0");
}
for(int a = 0;a<11;a++){
int b = x&(y-1); //int b = x%y;
sh[a] = b;
x>>>=3;
}
}
else if(y==16){ //十进制转16进制
if(hh==0){
System.out.print("0");
}
for(int a = 0;a<8;a++){
int b = x&(y-1); // int b = x%y;
sh[a] = b;
x>>>=4;
}
}
else System.out.println("没有对应进制!");
for(int s = sh.length-1;s>=0;s--){ //找出进制转换后的第一位有效数字
if(sh[s]!=0){
for(;s>=0;s--){
System.out.print(ch[(sh[s])]);
}
}
}
}
}
这代码我看不懂,期望大神给解读解读! |
|