radixflip

Binärrechner Subtraktion

Zwei Binärzahlen online subtrahieren. Minuend und Subtrahend eingeben — nur 0 und 1 — und die Differenz erscheint live in jeder Basis, mit den Borg-Regeln darunter.

Binärzahlen subtrahieren

1011₂ − 1010₂ = 1₂ (1₁₀).

Vollständiger Rechner (alle Basen, alle Operationen) →  ·  Binärrechner Addition →

So subtrahiert man Binärzahlen

  1. Zahlen ausrichten. Minuend oben, Subtrahend darunter, rechtsbündig schreiben.
  2. Von rechts nach links subtrahieren. Jede Spalte von rechts nach links rechnen: Ergebnis = a − b − Borg.
  3. Bei Bedarf borgen. Ist a − b − Borg negativ, 2 dazuaddieren und 1 als Borg in die nächste Spalte übernehmen.
  4. Ergebnis ablesen. Bleibt nach der Spalte ganz links kein Borg übrig, steht das Ergebnis da. Ist der Minuend kleiner als der Subtrahend, ist das Ergebnis negativ.

Borg-Regeln der Binär-Subtraktion

SpalteErgebnis-BitBorg aus
0 − 000
1 − 010
1 − 100
0 − 111
0 − 1 − 1 (mit Borg)01
1 − 1 − 1 (mit Borg)11

Rechenbeispiel: 1011₂ − 1010₂ = 0001₂

Spalte (von rechts nach links)MinuendSubtrahendBorg einErgebnisBorg aus
1.10010
2.11000
3.00000
4.11000

Die Ergebnis-Spalte von unten nach oben gelesen: 0 0 0 1. Kontrolle in Dezimal: 11 − 10 = 1 und 0001₂ in Binär ist 1₁₀.

Rechenbeispiel mit Borg: 1000₂ − 0001₂ = 0111₂

Spalte (von rechts nach links)MinuendSubtrahendBorg einErgebnisBorg aus
1.01011
2.00111
3.00111
4.10100

Hier muss in den ersten drei Spalten geborgt werden: Der Borg wandert von rechts nach links durch, bis die 1 in der vierten Spalte ihn auffängt. Kontrolle in Dezimal: 8 − 1 = 7 und 0111₂ in Binär ist 7₁₀.

Binärzahlen subtrahieren in Code

Python

def sub_binary(a, b):
    diff = int(a, 2) - int(b, 2)
    # bin(-1) ergibt '-0b1' — deshalb Betrag nehmen und Minus selbst setzen
    return ('-' if diff < 0 else '') + bin(abs(diff))[2:]

print(sub_binary("1011", "1010"))  # 1
print(sub_binary("1010", "1011"))  # -1

Java

// Ergebnis negativ-sicher: Minuszeichen selbst setzen
int diff = Integer.parseInt("1011", 2) - Integer.parseInt("1010", 2);
String differenz = (diff < 0 ? "-" : "") + Integer.toBinaryString(Math.abs(diff)); // "1"
// Achtung: Integer.toBinaryString(-1) allein ergibt 32 Einsen (Zweierkomplement).

C

#include <stdio.h>
#include <string.h>

int binaryToInt(const char *bits) {
    int ergebnis = 0;
    for (size_t i = 0; i < strlen(bits); i++)
        ergebnis = ergebnis * 2 + (bits[i] - '0');
    return ergebnis;
}

void printBinary(int n) {
    if (n < 0) { putchar('-'); n = -n; }
    if (n == 0) { printf("0"); return; }
    char bits[64]; int i = 0;
    while (n > 0) { bits[i++] = (n % 2) + '0'; n /= 2; }
    for (int j = i - 1; j >= 0; j--) putchar(bits[j]);
}

int main(void) {
    int differenz = binaryToInt("1011") - binaryToInt("1010");
    printBinary(differenz); // gibt 1 aus
    return 0;
}

Diese Snippets setzen gültige Binäreingaben voraus (nur 0 und 1). RadixFlip weist andere Ziffern für dich zurück — eine eingetippte 2 in einem Binärfeld wird einfach nicht übernommen.

Häufig gestellte Fragen

Wie subtrahiert man Binärzahlen?

Zahlen rechtsbündig untereinander schreiben — Minuend oben, Subtrahend darunter — und dann Spalte für Spalte von rechts nach links subtrahieren. Ergebnis je Spalte: a − b − Borg. Ist das Ergebnis negativ, 2 dazuaddieren und 1 als Borg in die nächste Spalte übernehmen. Beispiel: 1011 − 1010 = 0001.

Was ist 1011 − 1010 in Binär?

1011 − 1010 = 0001 in Binär, also 1 in Dezimal. Kontrolle: 1011 ist 11, 1010 ist 10 und 11 − 10 = 1.

Was sind die Borg-Regeln bei der Binär-Subtraktion?

0 − 0 = 0, 1 − 0 = 1, 1 − 1 = 0 (jeweils ohne Borg), 0 − 1 = 1 mit Borg 1, 0 − 1 − 1 (mit eingehendem Borg) = 0 mit Borg 1 und 1 − 1 − 1 = 1 mit Borg 1. Allgemein: Ergebnis = a − b − Borg ein; ist es negativ, 2 dazuaddieren und Borg aus = 1 setzen.

Was tun, wenn das Ergebnis negativ ist?

Wenn der Minuend kleiner ist als der Subtrahend, ist das Ergebnis negativ. Dann die Differenz umgekehrt rechnen (Subtrahend − Minuend) und ein Minuszeichen davorsetzen. Beispiel: 1010 − 1011 = −1, denn 1011 − 1010 = 1. Der Rechner oben zeigt negative Ergebnisse direkt mit Minuszeichen an.

Wie subtrahiert man Binärzahlen in Python?

Mit int(a, 2) - int(b, 2). Vorsicht bei negativen Ergebnissen: bin(-1) ergibt '-0b1'. Sicherer: ('-' if diff < 0 else '') + bin(abs(diff))[2:]. Beispiel: 1011 − 1010 ergibt "1", 1010 − 1011 ergibt "-1".

Wie subtrahiert man Binärzahlen in Java und C?

Java: int diff = Integer.parseInt("1011", 2) - Integer.parseInt("1010", 2); dann (diff < 0 ? "-" : "") + Integer.toBinaryString(Math.abs(diff)) — ergibt "1". Hinweis: Integer.toBinaryString(-1) allein ergibt 32 Einsen (Zweierkomplement). C: Jede Binärzeichenkette mit einer Schleife in eine Zahl umwandeln (ergebnis = ergebnis * 2 + (ziffer - '0')), die Zahlen subtrahieren und bei negativem Ergebnis ein Minuszeichen vor die zurückgewandelte Binärzahl setzen.

Binärrechner Addition →  ·  Vollständiger Rechner →