Ennél bonyolultabb, mégpedig az összeadás során fellépő előléptetés (promotion) miatt. Megpróbálok táblázatot táblázni a mérések alapján:
+value f1+value f2+value f3+value f4+value
+1 0 0 ffffffff80000000 40000000
+1U 0 0 80000000 40000000
+1L 200000000 100000000 80000000 40000000
+1UL 200000000 100000000 80000000 40000000
Azt mondanám, hogy a következő rangfokozatok vannak (csökkenő sorrendben):
1UL 64-bites unsigned
1L 64-bites signed
f1 33-bites unsigned
1U,f2 32-bites unsigned
1 32-bites signed
f3 31-bites unsigned
f4 30-bites unsigned
Amikor két értéket összeadunk, a kettő közül az alacsonyabb rangút előléptetjük a magasabb rangúéval azonosra, hogy pl f3+1 esetén ez 32-bites signed, f3+1U esetén 32-bites unsigned.