Einfache Rechnung

CopWorker

Erfahrenes Mitglied
Hallo,

hab gerade einen Knoten im Hirn.

Eine Fehlerprüfung gibt Werte auf einem "int" zurück. Diese sind dezimal orientiert.
Die Werte sind allerdings (monentan) nur an den letzten 3 Dezimalstellen relevant.
Bsp. 10400329, 10402031;
Also ich brache nur 329, 031.
Nur die letzten 10 Bits rausverunden reicht ja vom Wertebereich nicht aus, bzw. ist nicht dezimal orientiert.
C#:
int iStateError = route.sContHeader.iStateError & 0x3FF;
if (iStateError > 1 && iStateError < 999)

Muss ich da über den Weg gehen, den int in einen string zur konvertieren und die letzten 3 zeichen abschneidn und nach int rückkonvertieren?

Vielen Dank.
Mit freundlichen Grüßen
CopWorker
 

Technipion

Erfahrenes Mitglied
Hallöchen,
das ist ein klassischer Anwendungsfall für die Modulo-Operation. Einfach den Wert mod 1000 rechnen, dann erhältst du die letzten 3 Dezimalstellen.

Gruß Technipion