使用简单的for循环进行 一个十进制数 转换为二进制数、八进制数、十六进制数。
(2)十进制转二进制
十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)
(2)十进制转八进制
十进制整数转八进制数:“除以8取余,逆序排列”(除八取余法)
(2)十进制转十六进制
十进制整数转十六进制数:“除以十六取余,逆序排列”(除十六取余法)
具体实现
二进制
现定义一个数组,然后把用2整除这个数,得到商和余数,再用商继续除以2,直到值为0结束循环,
//然后把这些余数放在数组中,输出即可;其他进制原理相同
代码
import java.util.Scanner;
public class Demo00 {
public static void main(String[] args) {
System.out.println("请输入一个整数");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
// 转换为二进制
int[] numEr = new int[100];
int indexEr = 0;
for (int i = number; i > 0; i /= 2, indexEr++) {
numEr[indexEr] = i % 2;
}
System.out.println("二进制:");
for (int i = indexEr - 1; i >= 0; i--) {
System.out.print(+numEr[i]);
}
System.out.println();
// 转换为八进制
int[] numBr = new int[100];
int indexBr = 0;
for (int i = number; i > 0; i /= 8, indexBr++) {
numBr[indexBr] = i % 8;
}
System.out.println("八进制:");
for (int i = indexBr - 1; i >= 0; i--) {
System.out.print(numBr[i]);
}
System.out.println();
// 转换为十六进制
int[] nums = new int[100];
int index = 0;
for (int i = number; i > 0; i /= 16, index++) {
nums[index] = i % 16;
}
System.out.println("十六进制:");
for (int i = index - 1; i >= 0; i--) {
if (nums[i] == 10) {
System.out.println("A");
} else if (nums[i] == 11) {
System.out.println("B");
} else if (nums[i] == 12) {
System.out.println("C");
} else if (nums[i] == 13) {
System.out.println("D");
} else if (nums[i] == 14) {
System.out.println("E");
} else if (nums[i] == 15) {
System.out.println("F");
} else {
System.out.print(nums[i]);
}
}
}
}
结果