15 Stimmen

Bitweises Multiplizieren und Addieren in Java

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X