Да в том то и дело что никак, мне пока непонятен тот факт, что я счет произвожу в "слове" - это 2-а байта (integer 16 bit) или в "двойном слове" (uint или dint - 32 bit) , а результат вывожу в байт- 8bit. Приложенный код уже немного по истерзан, по этому там и есть разница в типах переменных изначально все было в int8_t и тут я и ошибся. Как я не мучил калькулятор не получалось у меня в этом типе данных выдать 0xFF, поскольку его значение это -1, максимум 0x7F- это и есть те семь разрядов с которыми я и мучился, спасибо что объяснили, а то гугл уже в шоке от моих тупых запросов.