Для чистого удовольствия и в свое время я пытаюсь узнать больше о двоичных числах и сборке. Я был в местной библиотеке, проверяя некоторые книги, чтобы получить более полное представление о двоичных числах и добавлении. Я даже не знал до нескольких недель назад, можно добавить двоичные числа с Java. Я споткнулся и был на два дня на этом.Выполнение двоичного сложения и вычитания с подписанными двоичными числами в Java
Как я уже сказал, я пытаюсь добавить двоичные числа в дополнение и вычитание. Я предполагаю, что мне нужно разобрать все, чтобы оно работало правильно. Я чувствую, что сейчас что-то смотрю. Что именно отсутствует? Любая помощь полезна.
Как прямо сейчас, у меня есть это:
`import java.util.Scanner;
public class binary operation {
public static void main(String[]args){
Scanner keyboard = new Scanner(System.in);
boolean keepGoing = true;
String binary1, binary2;
int num1, num2;
System.out.println("Scenario: Choose (A)dd, (S)ubtract, (E)xit");
char choice = keyboard.next().charAt(0);
while(keepGoing){
if (choice == 'A' || choice == 'a'){
System.out.println("Enter 8-bit signed binary number: ");
binary1 = keyboard.next();
System.out.println("Enter another binary number: ");
binary2 = keyboard.next();
num1 = Integer.parseInt(binary1, 2);
num2 = Integer.parseInt(binary2, 2);
int sum = num1 + num2;
System.out.println(Integer.toBinaryString(sum));
}
else if(choice == 'S' || choice == 's'){
System.out.println("Enter 8-bit signed binary number: ");
binary1 = keyboard.next();
System.out.println("Enter another binary number: ");
binary2 = keyboard.next();
num1 = Integer.parseInt(binary1, 4);
num2 = Integer.parseInt(binary2, 4);
int difference = num1 - num2;
System.out.println(Integer.toBinaryString(difference));
}
else if(choice == 'E' || choice == 'e'){
System.out.println("Thank you.");
keepGoing = false;
System.exit(0);
}
if(keepGoing){
System.out.println("Choose (A)dd, (S)ubtract, (E)xit");
choice = keyboard.next().charAt(0);
}
}
Примечание: ваше вычитание основывается на базе 4 вместо основания 2. –