Zweierkomplement & Binärzahlen

Blain

Blain

Aktives Mitglied
Thread Starter
Dabei seit
06.07.2006
Beiträge
1.645
Reaktionspunkte
83
Hallo Leute,

kann mir jemand erklären, warum der Windows Taschenrechner aus einer 233 (Dez) die 11101001 (Bin) macht, aber wenn ich die 11101001 (Bin) nach Dez umwandle, dann kommt die -23 raus.

Mir ist klar dass ein Zweierkomplement von -23 die 11101001 ergibt. Und mir ist auch klar dass die binäre 11101001 die Dezimalzahl 233 ergibt.

Frage: Wie kann man ein Zweierkomplement von einer Binärzahl unterscheiden? Oder muss das einfach in der Angabe mit drinnen stehen dass es sich um ein Zweierkomplement und nicht um eine Binärzahl handelt...

Ist ein bisschen seltsam dass man das am Windows-Taschenrechner nicht einstellen (anzeigen) kann. Am Mac Taschenrechner habe ich es noch nicht getestet...

Grüße Blain
 
Zuletzt bearbeitet:
Ich kenne zwar die Antwort nicht aber ich bewundere das Problem.
 
Ein Zweierkomplement ist nur ne Darstellung einer Binärzahl. Die kann auch im Einerkomplement oder sonstwas vorliegen. Wenn du nicht weisst was du für eine Darstellung hast, kannst die eigentlich nicht ins dezimalsystem rückrechnen.
 
  • Gefällt mir
Reaktionen: below
und vergiss nicht, dass es signed und unsigned gibt ;)
anscheinend hast du ja da signed ;)
 
Also nach meinem Wissen musst du die gesamte Bitzahl kennen, dann kannst du an der ersten Ziffer erkennen ob die Zahl ein Zweierkomplement ist. Sprich wenn du in den Windows Rechner 11101001 (Bin) eingibst, denkt er es gibt insgesamt 8 Bit, die Zahl kann also nur negativ sein.

Versuch doch mal stattdessen 011101001 (Bin) einzugeben, dann wird vermutlich 233 herauskommen.

Will man im Binärsystem auch negative Zahlen berücksichtigen, ist die größte positive Zahl die mit der 0 an der höchstwertigen Stelle, gefolgt von lauter 1ern. Bei 8-Bit also beispielsweise 01111111 = +127, die kleinste negative Zahl ist dagegen 10000000 = -128
Die positive Zahl beginnt also immer mit einer 0, die negativen mit einer 1.

Um +233 darzustellen, braucht man also schon 9 Bit, du hast aber nur 8 Bit eingegeben. Da man in den Rechner auch negative Zahlen eingeben kann, wird er standardmässig von einer Zahl mit Vorzeichen ausgehen. Jetzt hat der Windows Rechner aber die Wahl ob er die von dir eingegebene Zahl als 8 Bit Zahl interpretiert (was er wohl macht) oder als Zahl mit weggelassenen 0en am Anfang.

Um sicherzustellen das eine Binärzahl als positiv betrachtet wird, solltest du also die führende 0 mit angeben. Oder aber die maximale Anzahl der Binärstellen nennen. Bei einer Binärzahl mit einer 1 am Anfang, kannst du nicht sicher sagen welcher Dezimalzahl das entspricht. Das kommt dann darauf an ob negative Zahlenwerte vorgesehen sind und ob diese dann im Einer- oder Zweierkomplement angegeben werden.
 
Zuletzt bearbeitet:
@Magicq99: Soweit schon richtig, was Du schreibst. Aber gilt leider nur so lange die Zahl nicht im Einer-, Zweierkomplement, … vorliegt. Vielleicht hilft es ja ein wenig was nachzulesen wiki-de-zweierkomplement.
Und noch mal zurück zur der fraglichen Binärzahl: Solange man nicht weiß, wie diese kodiert ist, kann man wenig über diese sagen.

cholesterin
 
Hallo Leute,

danke für Eure Antworten, sie haben mir viel weitergeholfen. Bin jetzt grad am Mac. Kann mir einer sagen wie ich am Mac-Taschenrecher Binärzahlen eingeben kann? Ich kann nur 8er, 10er und 16er auswählen... :confused:

Dafür sehe ich, dass sie dem Mac extra eine Taste für das 2er Komplement spendiert haben...
 
Einfach die die Nullen anklicken, schon wird da ne eins draus :) .
 

Anhänge

  • Bildschirmfoto 2010-06-25 um 21.28.45.png
    Bildschirmfoto 2010-06-25 um 21.28.45.png
    47,9 KB · Aufrufe: 116
Ich schmeiß mich weg... Da wäre ich nie drauf gekommen :) Loool
Vielen Dank für den Tipp. Gleich noch eine Frage: Kann man die Bits auch einschränken z.B. auf 1 Byte oder 1 Wort oder so ? Damits nicht so lange ist ?
 
Hmm das kann ich dir nicht sagen, hast du zufällig Matlab zur Hand? Da geht das alles etwas schneller :).
 
Zurück
Oben Unten