www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Byte invertieren


Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

MfG.,
Peter

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja genau und nach Adam Riese müss dann 00 herauskommen

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab' ich mich etwa geirrt oder Dein Posting falsch verstanden?

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz einfach wenn ich 0101 1010 Invertiere,
soll 1010 0101 herauskommen, logisch oder?!

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tut es das nicht?

1111 1111 - 0101 1010 = 1010 0101

Oder liege ich schon wieder falsch?

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht rechnet mein TI92 falsch?

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!!

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens,

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


Peter

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Aufklärung, Peter.
Ich habe schon an meinen Mathematikkenntnissen gezweifelt :-)

Beitrag #2760126 wurde von einem Moderator gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.