Меня попросили создать код тремя способами.Эта программа должна иметь метод для каждого из преобразований decimalToBinary, decimalToOctal и decimalToHexadecimal, а затем отображать результаты в таблице с четырьмя столбцами: Decimal, Binary, Octal и Hexadecimal, используя printf
Мне удалось создатькод для выполнения преобразований, однако мне очень трудно понять, как напечатать код в столбце.Я провел исследование, и я знаю, как использовать printf, однако я запутался, так как длина выходных данных будет отличаться каждый раз.Как я могу заставить их отображать одинаково?Вот мой код.
import java.util.Scanner;
public class Convert {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter your decimal number");
int decimal = input.nextInt();
System.out.printf("Decimal: %d\n", decimal);
String binary=decimalToBinary(decimal);
System.out.printf("Binary: %s\n", binary);
String octa=decimalToOctal(decimal);
System.out.printf("Octal: %s\n", octa);
String hexa=decimalToOctal(decimal);
System.out.printf("Hexa:%s\n", hexa);
}
public static String decimalToBinary(int decimal) {
int remainder;
String answer="";
while (decimal>0) {
remainder=decimal%2;
decimal=decimal/2;
answer=remainder+answer;
}
return answer;
}
public static String decimalToOctal(int decimal) {
int remainder;
String answer="";
while (decimal>0) {
remainder=decimal%8;
decimal=decimal/8;
answer=remainder+answer;
}
return answer;
}
public static String decimalToHexadecimal(int decimal) {
int remainder;
String answer="";
while (decimal>0) {
remainder=decimal%16;
decimal=decimal/16;
if (remainder==10)
answer= "A" + answer;
else if (remainder==11)
answer= "B" + answer;
else if (remainder==12)
answer= "C" + answer;
else if (remainder==13)
answer= "D" + answer;
else if (remainder==14)
answer= "E" + answer;
else if (remainder==15)
answer= "F" + answer;
else answer=remainder+answer;
}
return answer;
}
}