Forum: Mikrocontroller und Digitale Elektronik Hilfe beim Vergleich


von Alex (Gast)


Lesenswert?

Hallo zusammen,
Ist das so richtig?
if (0x30 == (0x3493F & 0x30)) { Mach was, wenn wahr }
Ich möchte damit abfragen, ob die vorletzte Stelle eine 3 beinhaltet.

Kann man es besser machen?
Danke schön

von Falk B. (falk)


Lesenswert?

@Alex (Gast)

>Ist das so richtig?

Woher sollen wir das wissen?

>if (0x30 == (0x3493F & 0x30)) { Mach was, wenn wahr }
>Ich möchte damit abfragen, ob die vorletzte Stelle eine 3 beinhaltet.

Aha. Da sollte aber wenigstens EINE Variable drin vorkommen, meinst du 
nicht auch?

1
int x;
2
3
if ( (x & 0x00F0) == 0x30) { // mach was, vorletzte Stelle ist 3) }

Siehe Bitmanipulation. Denk dran, die vorletzte Stelle hat 4 Bit, 
die muss man alle berücksichtigen und darf nur die anderen HEX-Stellen 
löschen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex schrieb:
> ob die vorletzte Stelle eine 3 beinhaltet.
Die vorletzte Stelle wovon?

von MaWin (Gast)


Lesenswert?

Alex schrieb:
> Ich möchte damit abfragen, ob die vorletzte Stelle eine 3 beinhaltet.

Dann wohl eher

> if (0x30 == (0x3493F & 0xF0))

wenn vorletzte Stelle bei dir die bits 4..7 mit der Hexadezimalzahl 3 
sind

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.