"[i]Все переменные типа signed int[/i]" Зачем тогда дополнительно преобразование в signed int? И тады они и представляются как знаковые и всё нормально должно считаться... если не считать того, что -10-/30 интовых == 0. И работать оно так не захочет.
Получить желаемый результат в дополнительном коде, т.е. переменные почему-то автор желает оставить беззнаковыми, не получится без лишних операций.