Это будет работать.Хотя вы можете хранить только до +127 и до минус -128.Таким образом, отрицание -128 плюс 1 будет отрицательным числом.С этим ничего не поделаешь, если возвращаемое число также должно быть 24-битным.
Извините, замените +127 и -128 на самые большие положительные и отрицательные числа, которые можно сохранить с 24-bits.Они предназначены для иллюстрации того, что в дополнении 2 вы можете хранить отрицательное число, которое имеет абсолютное значение на 1 больше, чем наибольшее положительное число, которое вы можете сохранить.Поэтому вам нужно выяснить, как вы хотите с этим справиться, если номер, который вы указали, является наибольшим отрицательным числом (0x80000000 в дополнении 2).