Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Zockerknight

Frischling

  • »Zockerknight« ist der Autor dieses Themas

Beiträge: 22

Beruf: Schüler (11.Klasse)

  • Private Nachricht senden

1

29.03.2009, 15:20

Frage zu Bitoperationen

Hallo,

[Anmerkung von Fred: Es geht um den Contest "Rechnen einmal anders"]

Ich weiß das das hier schon längst vorbei ist, aber mir war etwas langweilig also hab ich mich einfach mal so an die Aufgabe gemacht.
Mal ne kurze Frage zum Thema(binäre Operatoren,wenns hier nicht reinpasst könnt ihr auch gerne die Frage woanders hin verschieben).

Warum ist
-9&8 = 0 und nicht wie mit +9 gleich 8
und umgekehrt
-9&4 = 4 und nicht wie mit +9 gleich 0

das Vorzeichenbit macht doch hier nichts aus, denn bei 4 steht halt ne 0 ganz links und bei -9 eben 1 aber das gibt doch auch wieder 0.

Den somit scheint meine Addtionsfunktion auch als Subraktionsfunktion zu funktionieren, was so nicht gedacht war(ist ja nicht schlimm, aber ich verstehe es nicht)

mfg Chris

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

2

29.03.2009, 15:32

Bei Integern gibt es ansich kein Vorzeichenbit, welches eine Zahl negativ macht (wie zB bei floats). -1 ist zB 0xffffffff, also alle Bits gesetzt. Die Tatsache, dass das linke Bit das Vorzeichen anzeigt, ist also eher ein Nebeneffekt;)

Ciao
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

3

29.03.2009, 15:47

schau dir doch mal genau an, wie das Zweierkomplement funktioniert...Damit sollten alle Fragen geklärt sein

Zockerknight

Frischling

  • »Zockerknight« ist der Autor dieses Themas

Beiträge: 22

Beruf: Schüler (11.Klasse)

  • Private Nachricht senden

4

29.03.2009, 16:18

mmhh ich glaube ich bin dahinter gekommen.
Am Anfang ist bei -9&1 = 1 was so stimmt und ab dann kommt immer das Gegenteil raus, was eigentlich raus kommen soll.
Also wird das ganze invertiert und einmal eine 1 dazu gezählt, das ist ja das Zweierkomplement oder?
Naja im weiteren Verlauf des Algos kommen, da immer das Gegenteil passiert, immer links 1er hinzu(Beispielrechnung -9 + 2)
...111111001.
Wenn das letzte Bit gesetzt wird kommt -7 raus was 111111111111111-
111111111111001 entsprechen würde(bei 15bit eben 7), das 16 bit sagt dann das es minus sein soll, aber Helmut sagt doch das es nicht so ist.
stimmt das dann so?
Ich hab immer gedacht, es kommt immer ganz normal die binärzahl und das 16bit gibt dann einfach das Vorzeichen an. Hier scheine ich aber offensichtlich daneben zu liegen

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

5

29.03.2009, 16:55

Ich stelle mir das ganze immer als Kreis vor, also alle Zahlen im Kreis angeordnet, bei 2^x kommt man irgendwann wieder bei -2^x raus. Wenn du das Komplement einer Binärzahl nimmst, und das addierst, sind alle Bits gesetzt, das heißt du bist ganz am ende. +1 bewirkt dann, dass du wieder von vorne anfängst (Übertragsbit fällt weg). Du bist also einen "Halbkreis" gewandert und hast jetzt die gleiche Zahl, nur negativ.

Zockerknight

Frischling

  • »Zockerknight« ist der Autor dieses Themas

Beiträge: 22

Beruf: Schüler (11.Klasse)

  • Private Nachricht senden

6

29.03.2009, 17:34

ah ok hab jetzt so nen Zahlenkreis gefunden, ja so ist es verständlich, jetzt verstehe ich auch, warum so subtrahiert wird und warum die Operatoren so arbeiten.

Danke

Werbeanzeige