You are on page 1of 3

/**

* Program to convert between binary, octal, decimal, and hexadecimal


numbers
* Lab #1
* Team members: [Arnav Jain, Xiao Qi Lee]
*/

import java.util.Scanner;

public class NumberConverter {

// Function to convert decimal to binary


public static String decimalToBinary(int decimal) {
StringBuilder binary = new StringBuilder();
while (decimal > 0) {
int remainder = decimal % 2;
binary.insert(0, remainder);
decimal = decimal / 2;
}
return binary.toString();
}

// Function to convert decimal to octal


public static String decimalToOctal(int decimal) {
StringBuilder octal = new StringBuilder();
while (decimal > 0) {
int remainder = decimal % 8;
octal.insert(0, remainder);
decimal = decimal / 8;
}
return octal.toString();
}

// Function to convert decimal to hexadecimal


public static String decimalToHexadecimal(int decimal) {
StringBuilder hexadecimal = new StringBuilder();
while (decimal > 0) {
int remainder = decimal % 16;
if (remainder < 10)
hexadecimal.insert(0, remainder);
else
hexadecimal.insert(0, (char) ('A' + remainder - 10));
decimal = decimal / 16;
}
return hexadecimal.toString();
}

// Function to convert binary to decimal


public static int binaryToDecimal(String binary) {
int decimal = 0;
int power = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
if (binary.charAt(i) == '1') {
decimal += Math.pow(2, power);
}
power++;
}
return decimal;
}

// Function to check if a string is a valid decimal


public static boolean isValidDecimal(String number) {
for (int i = 0; i < number.length(); i++) {
if (!Character.isDigit(number.charAt(i))) {
return false;
}
}
return true;
}

public static void main(String[] args) {


Scanner scanner = new Scanner(System.in);

// Ask for the number and its type


System.out.print("Enter a number: ");
String number = scanner.nextLine();
System.out.print("Enter the type of number (binary or decimal):
");
String type = scanner.nextLine().toLowerCase();

// Check for validity of decimal number


if (type.equals("decimal")) {
if (!isValidDecimal(number)) {
System.out.println("Error: Not a valid decimal number!");
return;
}
}

// Convert the number to other types


if (type.equals("binary")) {
int decimal = binaryToDecimal(number);
System.out.println("Decimal: " + decimal);
System.out.println("Octal: " + decimalToOctal(decimal));
System.out.println("Hexadecimal: " +
decimalToHexadecimal(decimal));
} else if (type.equals("decimal")) {
int decimal = Integer.parseInt(number);
System.out.println("Binary: " + decimalToBinary(decimal));
System.out.println("Octal: " + decimalToOctal(decimal));
System.out.println("Hexadecimal: " +
decimalToHexadecimal(decimal));
} else {
System.out.println("Invalid input!");
}

scanner.close();
}
}
Output:

Decimal to Binary

Binary to Decimal

You might also like