If there is a carry out of the left most bit, it is simply discarded:
unsigned short a = 0xFFFF
unsigned short b = 0x0001
In binary:
carry bits: 11111 1111 1111 111
a: 1111 1111 1111 1111
b: 0000 0000 0000 0001
-------------------
a+b: 0000 0000 0000 0000
The carry bit out of the left most bit position, 1, is
discarded. So the result a + b is 0.
In decimal this result shows again that unsigned int type is different
from ordinary mathematical integers:
In decimal a: 65535 and b: 1
As unsigned short's
a + b = 0
Note that for signed integers this would mean a = -b = -1
That is, a = 0xFFFF would be the hex representation of the signed
short integer -1.