Because numerical overflow can be useful. You basically calculate the value x mod(High(word)+1).
Code:
var
x : word; //16 bit unsigned value
y : longword; //16 bit unsigned value
begin
//16 bit
x:=65535; //upper limit for word
x:=x+10; //x overflows and is now nine
//32 bit version of above code
y:=65535;
y:=(y+10) mod 65536; //also nine thanks to mod operation
Hmm... I'm not very good at explaining this. But you see that the 16-bit calculation is simpler and possibly faster.
Bookmarks