十进制转二进制:
十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)
十进制转八进制:
十进制整数转八进制数:“除以8取余,逆序排列”(除八取余法)
十进制转十六进制:
十进制整数转十六进制数:“除以十六取余,逆序排列”(除十六取余法)
代码
public static void main(String[] args) {
//1)输出一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int num = sc.nextInt();
//2)重新设置num,不然在每次转换完一次进制后,num都会变成0
int a = num;
int b = num;
int c = num;
System.out.println("您输入的整数为:" + num);
// 3)二进制转换
String er = "";
while (a != 0) {
er = " " + a % 2 + er;//每个位置的数字用空格隔开再连接
a = a / 2;
}
System.out.println("二进制为:" + er);
// 4)八进制
String ba = "";
while (b != 0) {
ba = " " + b % 8 + ba;//每个位置的数字用空格隔开再连接
b = b / 8;
}
System.out.println("八进制为:" + ba);
// 5)十六进制
String shiliu = "";
while (c != 0) {
//6)判断余数为10,11,12,13,14,15时的情况
if(c%16==10){
shiliu = " " + "A" + shiliu;
}else if(c%16==11){
shiliu = " " + "B" + shiliu;
}else if(c%16==12){
shiliu = " " + "C" + shiliu;
}else if(c%16==13){
shiliu = " " + "D" + shiliu;
}else if(c%16==14){
shiliu = " " + "E" + shiliu;
}else if(c%16==15){
shiliu = " " + "F" + shiliu;
}else{
shiliu = " " + c%16 + shiliu;
}
c = c / 16;
}
System.out.println("十六进制为:" + shiliu);
sc.close();
}
运行结果: