Forum: Mikrocontroller und Digitale Elektronik C Welches Bit hat sich geändert


von David H. (davidm)


Lesenswert?

Welches Bit hat sich geändert bei der neuen Variable. und dies nur 
berücksichtigen wenn der wechsel von 0 auf 1 war.


Beispiel Bit wechsel Bit0 und Bit1:

0101  <- alt
0110  <- neu
-----------
0010 <- ergebnis


Wie bekommt man das in C hin?

von xor (Gast)


Lesenswert?

David Mueller schrieb:
> Welches Bit hat sich geändert bei der neuen Variable. und dies nur
> berücksichtigen wenn der wechsel von 0 auf 1 war.
>
>
> Beispiel Bit wechsel Bit0 und Bit1:
>
> 0101  <- alt
> 0110  <- neu
> -----------
> 0010 <- ergebnis
>
>
> Wie bekommt man das in C hin?

C weis ich nich. Ist aber doch XOR

von Sina A. (sinapse)


Lesenswert?

(alt^neu)&neu

von xor? (Gast)


Lesenswert?

XOR? Wäre das Ergebnis dann nicht 0011?

von Norbert (Gast)


Lesenswert?

xor schrieb:
> David Mueller schrieb:
>> Welches Bit hat sich geändert bei der neuen Variable. und dies nur
>> berücksichtigen wenn der wechsel von 0 auf 1 war.
>>
>>
>> Beispiel Bit wechsel Bit0 und Bit1:
>>
>> 0101  <- alt
>> 0110  <- neu
>> -----------
>> 0010 <- ergebnis
>>
>>
>> Wie bekommt man das in C hin?
>
> C weis ich nich. Ist aber doch XOR

XOR ist hier nur die halbe Miete!
Da gehört noch eine Maske und ein AND dazu.

von xor (Gast)


Lesenswert?

xor? schrieb:
> XOR? Wäre das Ergebnis dann nicht 0011?

Stimmt. Mist. Tschuldigung :(

von Sina A. (sinapse)


Lesenswert?

du überliest seine zusätzliche anforderung dass nur wechsel von 0 auf 1 
beruecksichtigt werden sollen

von Homer (Gast)


Lesenswert?

(alt ^ neu) & neu

von David H. (davidm)


Lesenswert?

geaendert = new & ~alt; ?

von Gusti (Gast)


Lesenswert?

sina anargo schrieb:
> du überliest seine zusätzliche anforderung dass nur wechsel von 0 auf 1
> beruecksichtigt werden sollen

Gnau das wird ja mit dem &neu erreicht. Wenn neu auf 0 ist dann gibts 0.

von amateur (Gast)


Lesenswert?

Es kommt darauf an was Du wissen willst.

Willst Du nur wissen, ob sich irgendwas geändert hat ist XOR erste Wahl.

Willst Du aber wissen wer, geht's nur mit einer Bit-für-Bit Abfrage.

Möglicherweise hilft auch eine Kombination in der Form von:
Feststellen ob irgendwas geändert und wenn ja, dann genau hingucken wer.

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.