Ваша путаница может быть из-за ширины используемых чисел. Чтобы лучше это понять, попробуйте создать целое число со знаком из целого числа без знака.
Если MSB вашего целого числа без знака уже равно 0, то вы можете прочитать его как подписанный и получить тот же результат.
Если MSB равен 1, то вы можете добавить 0 слева, чтобы получить номер со знаком. Вы должны расширить знак (то есть, добавить 0, если MSB равен 0, добавить 1, если MSB равен 1) все числа со знаком, чтобы получить число одинаковой ширины, чтобы вы могли выполнять арифметику "нормально".
Например, используя ваши номера:
X = 01001001: без знака, MSB равен 0, ничего не делать.
Y = 10101010: Подпись, ничего не сделал с Х, все еще ничего не делает.
Но если мы изменим MSB X на 1:
X = 11001001: без знака, MSB равен 1, Добавить 0 -> 011001001
Y = 10101010: расширенный знак со знаком X, поэтому расширенный знак Y -> 110101010
Теперь у вас есть два числа со знаком, которые вы можете добавлять или вычитать так, как вы уже знаете.