Hallo da draußen weiß jemand eine Lösung, wie ich ein ganzes Byte am schnellsten Inventieren kann? Der 89c2051 hat kein Befehl dafür und jedes Bit einzeln dauert mir zu lang. mfg
Ganz einfach wenn ich 0101 1010 Invertiere, soll 1010 0101 herauskommen, logisch oder?!
Tut es das nicht? 1111 1111 - 0101 1010 = 1010 0101 Oder liege ich schon wieder falsch?
Ups jetzt versteh ich den Posting von gard g So einfach kann man das Lösen?! Da war ich nie drauf gekommen Danke Peter!!!
Puh, und ich dachte schon, mein binäres Weltbild bricht gerade zusammen... Jetzt wird Deinem 89C2051 ja richtig langweilig, wenn er nur eine Subtraktion durchführen muß :-) Grüße, Peter
Ein Subtraktion invertiert nicht bitweise ! Dafür gibts z.B. die Befehle: cpl a ;geht nur für den ACCU oder: xrl byte, #0FFh ;geht für alle Bytes, z.B. auch die Ports P0..P3 Peter
> Ein Subtraktion invertiert nicht bitweise !
Tut sie nicht? Gibt es da ein Beispiel für?
Ich hätte jetzt vermutet, dass 255 - x = !x für max. bytegroße x immer
wahr ist.
Hi stimmt schon. XOR mit 0xFF sollte aber auf den meisten Maschinen schneller sein und ist eigentlich auch besser nachvollziehbar. Ein XOR kann man auch als gesteurten Inverter sehen. Will man z.B. nur die Bits 0,1,2,4 und 7 invertieren reicht ein XOR mit 0x97 Matthias
@Jens, Subtraktion (255-x) geht auch, ich hatte das mit der Negation verwechselt (0-x). Peter
Vielen Dank für die Aufklärung, Peter. Ich habe schon an meinen Mathematikkenntnissen gezweifelt :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.