Frage von Malmosma, 225

Wie kann ein Computer Minus rechnen?

Hallo Leute, ich habe gehört, dass ein Computer eigentlich nur addieren kann. Wie funktioniert dann die Subtraktion???

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Willibergi, Community-Experte für Mathe, 72

Der Computer unterscheidet nicht zwischen positiven und negativen Zahlen.

Zahlen mit beispielsweise 4 Bit haben einen Wertebereich von -8 bis 7.

Das erste Bit stellt das Vorzeichen dar.

Also ist die Zahl 1101 nicht 13, auch nicht -5, sondern -3.

Man errechnet sie, indem man die Zahl invertiert und dann 1 addiert:

1101 ≙ ~1101 + 1 ≙ 0010 + 1 ≙ 11 ≙ -3

Man muss auf das Vorzeichen achten (1 ≙ (-); 0 ≙ (+))

Der Computer addiert also eine negative Zahl - eine explizite Subtraktion gibt es also nicht.

Ich hoffe, ich konnte dir helfen; bei Fragen kannst du dich gerne an mich wenden. ;)

LG Willibergi

Antwort
von daCypher, 77

Doch, ein Computer kann auch subtrahieren. Die Schaltung zum subtrahieren ist ähnlich zu der Schaltung zum addieren.

Wenn es keine eigene Schaltung zum subtrahieren gibt, kann man auch mit den sogenannten Zweierkomplement addieren und den Übertrag (Carry) negieren. Also Beispiel 90 - 15:

  01011010
- 00001111

Die 15 wird jetzt negiert und +1 gerechnet. Das ist das Zweierkomplement.

00001111 | negieren
11110000 | +1
11110001

Das wird auf die 90 addiert:

   01011010
+  11110001
-----------
(1)01001011

Die 1, die vorne in Klammern als Übertrag steht wird negiert. Also wird dort eine 0 draus. Das Ergebnis ist also 01001011 (Hex: 4B), was als Dezimalzahl 75 ist.

Kommentar von daCypher ,

Vielleicht als Ergänzung dazu: Für einen Bit-Addierer muss man eine Schaltung bauen, die folgende Wahrheitstabelle hat:

E1|E2|Cin || Cout | A
-----------------------
 0| 0| 0 || 0 | 0  0| 0| 1 || 0 | 1  0| 1| 0 || 0 | 1  0| 1| 1 || 1 | 0
 1| 0| 0 || 0 | 1
 1| 0| 1 || 1 | 0
 1| 1| 0 || 1 | 0
 1| 1| 1 || 1 | 1

Davon werden einfach mehrere verkettet. Das Cout vom niedrigeren geht immer in das Cin vom höheren Bit rein. C (Carry) ist halt der Übertrag. 

Für einen Bit-Subtrahierer sieht die Wahrheitstabelle so aus:

E1|E2|Cin || Cout | A
-----------------------
 0| 0| 0 || 0 | 0
 0| 0| 1 || 1 | 1
 0| 1| 0 || 1 | 1
 0| 1| 1 || 1 | 0
 1| 0| 0 || 0 | 1
 1| 0| 1 || 0 | 0
 1| 1| 0 || 0 | 0
 1| 1| 1 || 1 | 1

Man muss halt nur die logischen Schaltungen dazu bauen.

Kommentar von daCypher ,

Weitere Ergänzung: Beim Beim Bit-Addierer braucht man diese beiden Schaltungen:

Cout = (E1 AND (E2 OR Cin)) OR (E2 AND Cin)
A = (E1 XOR E2) XOR Cin

Für den Bit-Subtrahierer braucht man ein anderes Cout (beim A-Ausgang ist es, wie man sieht, die gleiche Schaltung)

Cout = (Not(E1) AND (E2 OR Cin)) OR (E1 AND E2 AND Cin)

Antwort
von Spezialwidde, 82

 Selbst im billigsten Taschenrechner sind µ-Controller verbaut die bestimmte Algorithmen abarbeiten. Sie müssen ja zb auch Dezimal in Binär umrechnen weil ein Computer nur mit Binärzahlen arbeiten kann. Was diese Algorithmen machen weiß nur der Hersteller. Jedenfalls kein simples Addieren ;-)

Antwort
von schmiddi201, 64

Der Computer rechnet einfach die zu subtrahierende Zahl in eine negative um. Zum Beispiel 5: positiv in binär : 0101. Negativ: 1011. Dann addiert er einfach eine andere Zahl drauf z.b. noch ne 6 und er hat das ergebnis -1

Kommentar von schmiddi201 ,

Sorry kommt 1 raus

Antwort
von xSh4kerx, 85

Computer können nur mit 0 und 1 rechnen, da sie den Zustand An/Aus darstellen. Du hast keine Informationen angegeben, daher lässt sich nichts Besseres antworten.

Kommentar von Fishmeaker ,

Also das stimmt nicht so richtig.

Zunächst sind 0 und 1 in einem PC nicht Strom an und Strom aus sondern definierte Spannungsstärken. Denn 0 != Nichts, oder anders gesagt: In der Informatik ist 0 auch etwas und nicht eben Nichts.

Desweiteren rechnet ein PC lediglich im Binärsystem. Es ist lediglich eine andere Darstellung von Zahlen. Funktioniert in der Logik dennoch gleich:

DEZ  BIN
0       0
1       1
2       10
3       11
4       100
5       101
6       110
7       111
8       1000
9       1001
10      1010
11       1011
12       1100
13       1101
14       1110
15       1111
...

Kommentar von xSh4kerx ,

Das weiß ich selber, schließlich bin ich in der Oberstufe im Bereich Technik und Datenverarbeitung.

Ich habe nun mal nicht die Lust gehabt, 15 Minuten an meinem Handy zu tippen, bis ich mal eine gescheite Antwort formuliert habe, zumal ich noch Unterricht hatte und die Frage an sich sowieso zu grob gestellt war. Daher muss man hier nicht zwingend sachlich werden, das kann man bei den Fragen, die man hier täglich zu lesen bekommt, auch nicht erwarten.

Antwort
von MysticArms, 88

Subtraktion durch Addition von negativen Zahlen vielleicht

Kommentar von Computer99Freak ,

Ist doch trotzdem minus. 4-7 oder 4 + -(7)

Kommentar von PWolff ,

Mathematisch minus. Technisch plus.

Antwort
von Fishmeaker, 67

Ein Computer kann mehr als nur addieren. Jeder PC kann sowohl die dir bekannten Grundrechenarten (+,-,*,/), als auch logische Rechenoperationen (AND, OR, XOR, NAND, etc.) anwenden.

Kommentar von Willibergi ,

Das war ja nicht seine Frage.

DASS Computer derartige Rechenoperation durchführen können, ist ihm augenscheinlich schon klar - er wollte fragen, wie ein Computer subtrahiert.

LG Willibergi

Kommentar von Fishmeaker ,

Wenn die Frage so gemeint war:

In der Recheneinheit des Computers sind die Logiken für mathematische und logische Operationen hinterlegt. Technisch kennt ein PC positive und negative Werte. Somit wird zum subtrahieren intern der abzuziehende Wert zunächst negiert und dann addiert.

Danke für den Hinweis!

Antwort
von Marcel89GE, 74

Keine Ahnung was du meinst, aber wenn es nur um den Rechenschritt geht, kann ich doch

2 + (-1) = 1 rechnen.

Antwort
von martinsweltgala, 60

http://www.udo-leuschner.de/computer/ccomputer.htm

Kommentar von martinsweltgala ,

da ist es gut erklärt

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten