Forum: Mikrocontroller und Digitale Elektronik Byte invertieren


von Walter (Gast)


Lesenswert?

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

von franz (Gast)


Lesenswert?

Hi,

255-Byte sollte das Inverse ergeben, wenn ich mich nicht irre.

MfG.,
Peter

von Walter (Gast)


Lesenswert?

ja genau und nach Adam Riese müss dann 00 herauskommen

von franz (Gast)


Lesenswert?

Hab' ich mich etwa geirrt oder Dein Posting falsch verstanden?

von Walter (Gast)


Lesenswert?

Ganz einfach wenn ich 0101 1010 Invertiere,
soll 1010 0101 herauskommen, logisch oder?!

von franz (Gast)


Lesenswert?

Tut es das nicht?

1111 1111 - 0101 1010 = 1010 0101

Oder liege ich schon wieder falsch?

von franz (Gast)


Lesenswert?

Vielleicht rechnet mein TI92 falsch?

von Walter (Gast)


Lesenswert?

Ups jetzt versteh ich den Posting von gard g
So einfach kann man das Lösen?! Da war ich nie drauf gekommen
Danke Peter!!!

von franz (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Jens Renner (Gast)


Lesenswert?

> 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.

von Matthias (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

@Jens,

Subtraktion (255-x) geht auch, ich hatte das mit der Negation
verwechselt (0-x).


Peter

von Jens Renner (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.