Вот скажите, правильно ли я помню, что знаковость/беззнаковость целого не влияет на работу операторов сложения? Ну т.е, если первый бит - знак, то
(u) 0100 +
(u) 0100 =
(u) 1000
(s) 0100 +
(s) 0100 =
(s) 1000
(s) 1001 +
(s) 1010 =
(s) 0011
С ходу не смог нагуглить.