Ich habe die Methoden, die sowohl die Multiplikation als auch die Addition durchführen, aber ich komme einfach nicht mit ihnen zurecht. Beide Methoden stammen von externen Websites und nicht von mir selbst:
public static void bitwiseMultiply(int n1, int n2) {
int a = n1, b = n2, result=0;
while (b != 0) // Iterate the loop till b==0
{
if ((b & 01) != 0) // Logical ANDing of the value of b with 01
{
result = result + a; // Update the result with the new value of a.
}
a <<= 1; // Left shifting the value contained in 'a' by 1.
b >>= 1; // Right shifting the value contained in 'b' by 1.
}
System.out.println(result);
}
public static void bitwiseAdd(int n1, int n2) {
int x = n1, y = n2;
int xor, and, temp;
and = x & y;
xor = x ^ y;
while (and != 0) {
and <<= 1;
temp = xor ^ and;
and &= xor;
xor = temp;
}
System.out.println(xor);
}
Ich habe versucht, eine schrittweise Fehlersuche durchzuführen, aber es hat wirklich nicht viel Sinn gemacht, obwohl es funktioniert.
Ich möchte versuchen zu verstehen, wie das funktioniert (vielleicht die mathematische Grundlage?).
Edit: Dies ist keine Hausaufgabe, ich versuche nur, bitweise Operationen in Java zu lernen.