Rechnen mit verschiedenen Datentypen- korrekte Schreibweise

Hallo,

wie schreibt man Folgendes richtiger/einfacher?

a (unsigned long) sollte zu Anfang eigentlich einen maximalen Wert 100000 haben. Da a aber im vorherigen Verlauf des Sketches per "map" bestimmt wird, kann a "nur" ein Integer sein. Deshalb multipliziere ich im u.a. Code mit zehn.

b (int) soll somit einen Wert von 0 bis 50000 erhalten können.

unsigned long a = 10000;
unsigned int b;

b = (unsigned long)(a * 10) / 2);

Gruß Chris

Wenn a schon unsigned long ist brauchst du keinen Cast! Das wird schon in unsigned long gerechnet.

Wenn a ein unsigned int wäre, dann musst du a auf unsigned long casten und nicht erst das Ergebnis

Habs verstanden. Super, danke!

Gruß Chris