Help with int/long signed/unsign math operations

To save processing power (speed is vital, i have about 40 usec per loop) in my program Im using unsigned longs for the things that required that type, longs for numbers that could be both large and +/-, ints for medium sized numbers, and bytes for small numbers. In essence I'm trying to shrink the type to the smallest possible for what its going to store.

Can you post the code you have now?