Witam, mam problem z zadaniem w którym mam utworzyć kalkulator. Chodzi o to że ma dodawać, odejmować, mnożyć i dzielić ale tak by działania odbywały sie na liczbach binarnych.Nie można używać tablic czy kolekcji.
W wyniku ma to mnie więcej tak wyglądać:
Podaj pierwsza liczbe: 5
Podaj druga liczbe: 2
Podaj operacje: +
5 - 00...0000 0101
2 - 00...0000 0010
7 - 00...0000 0111
Wydaje mi się że konwersja i dodawanie jest u mnie dobrze napisane bo starałem się wzorować na przykładach ale w dodawaniu jako argumenty mam używać stringów i tutaj właśnie mam problem, jak to napisać by działało poprawnie z argumentami jako string?
public static void main(String[] args) {
int val1 ;
int val2;
int val3;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Podaj pierwszą liczbę: ");
val1 = scanner.nextInt();
System.out.println("Podaj drugą liczbę: ");
val2 = scanner.nextInt();
System.out.println("Podaj operacje: ");
String option1 = scanner.next().toString();
if (option1.equals("+")) {
val3 = val1 + val2;
convertToBinary(val1);
convertToBinary(val2);
addBinary(val1, val2);
}
if (option1.equals("-")) {
val3 = val1 - val2;
}
if (option1.equals("*")) {
val3 = val1 * val2;
}
if (option1.equals("/")) {
val3 = val1 / val2;
}
}
while (val1 != 0 && val2 != 0) ;
}
public static void convertToBinary(int number1){
String binary = "";
while (number1 > 0) {
int d = number1 & 1;
binary = d + binary;
number1 = number1 >> 1;
}
System.out.println(binary);
}
static String addBinary(String a, String b)
{
String result = "";
int s = 0;
int i = a.length() - 1, j = b.length() - 1;
while (i >= 0 || j >= 0 || s == 1)
{
s += ((i >= 0)? a.charAt(i) - '0': 0);
s += ((j >= 0)? b.charAt(j) - '0': 0);
result = (char)(s % 2 + '0') + result;
s /= 2;
i--; j--;
}
return result;
}