Das Zweierkomplement (ebenso das Einerkomplement) ist ein _additiv_Inverses_ einer Ganzzahl in einem binären Rechenwerk. Zweck ist die Subtraktion von Ganzzahlen in einem _Addierwerk_ durchzuführen und auf ein Subtrahierwerk zu verzichten. // Kontext ist _nicht_ Theorie, sondern maschnienelle (elektronische), binäre! Rechenwerke // siehe auch: https://de.wikipedia.org/wiki/Addierwerk#Subtrahieren'' Die Idee ist Subtraktionen wie 7-5 und 4-(-3) durch die Additionen 7+(-5) und 4+3 zu ersetzen. Weitere Bezeichnungen sind 2-Komplement, Binärkomplement, two's complement. // "b-Komplement mit Basis b" und Basiskomplement gehören nach Verallgemeinerung, b=10 etc. Zweierkomplement und Einerkomplement sind auch als binäre Darstellungen negativer Ganzzahlen zu verstehen. Das Einerkomplement einer Ganzzahl ist das logische Komplement (Umkehrung aller Bits) der Ganzzahl im _konkreten_ Rechenwerk. // Die Gesamtheit (die Anzahl) binärer Stellen (Bits) ist durch das Rechenwerk konkret gegeben ! // logisches Komplement: https://de.wikipedia.org/wiki/Komplement_(Verbandstheorie)'' // als Operation eines Rechenwerks: https://de.wikipedia.org/wiki/Arithmetisch-logische_Einheit#Funktionen'' // --> Logisch --> Negation Das Zweierkomplement ist das um Eins erhöhte Einerkomplement. // --- Ende der Einleitung ! --- Hier ist ein Rahmen mit Kontext, Verständnis und (primitiver) Definition abgesteckt. Alles weitere kann weiter unten ausführlich auseinander genommen werden. Die gegenwärtige Einleitung strotzt vor Unsinn. (Tut mir leid, aber es ist so.) > keine zusätzlichen Zeichen + und - > das Zweierkomplement erlaubt es, die Rechenart Subtraktion auf die Addition zurückzuführen > und im Rahmen eines Addierwerks durchzuführen NEIN - das additiv Inverse erlaubt es Subtraktion durch Addition zu ersetzen, Einerkomplement und Zweierkomplement sind geeignete konkrete Implementierungen zu diesem Zweck > Das Zweierkomplement setzt ein beschränktes, vordefiniertes Format (Bit-Länge) für die Darstellung von Binärzahlen voraus, > da die Vereinbarung eine feste Bedeutung für das höchstwertige Datenbit verlangt. NEIN - KEINE Theorie, KONKRETE Rechenwerke > eine Interpretationsweise formatierter binärer Bitfolgen > welche für negative Werte von Integer-Variablen auftritt > für die ein in positiv und negativ geteilter Wertebereich definiert ist Wertebereiche sind für Typen definiert, unabhängig von Konstanten und Variablen. Ob Zweier- oder Einerkomplement, oder was anderes, ist MASCHIENEN-abhängig, nicht vom Typ einer Sprache. In vielen Sprachen orientiert sich der Wertebereich von Ganzzahltypen am Zweierkomplement, das Compilat muss aber auf der konkreten Zielplattform laufen ! > Dies sind die sogenannten "signed integer" > im Gegensatz zu den "unsigned integer" in Programmiersprachen > Für letztere tritt ein Zweierkomplement nicht auf 7u ist in C ein Literal für den Wert 7 im Typ unsigned int. 7u-5u ist eine Subtraktion, wie auswerten auf einer Maschiene ohne Subtrahierwerk ? Ich habe keine Erfahrung mit umfangreichen Änderungen an Artikeln, ausserdem braucht es mindestens eine zweite Meinung. Ich stelle es als Anregung hier rein. -- 03:08, 18. Dez. 2020 (CET)