В общем, необходимо реализовать левый сдвиг с saturation на Си. Не спрашивайте зачем. вот отрывок из докуменатции
These operations are saturating (SAT). This means that if overflow occurs:
• the Q flag is set
• if the full result would be less than –2^31
, the result returned is –2^31
• if the full result would be greater than 2^31 – 1, the result returned is 2^31 – 1.
На сколько я помню у отрицательных чисел старшний бит 1? Я правильно помню? Тогда такое число 10100000 после сдвига станет положительным 01000000
Это считается переполненнием? Если да то в какую сторону? Спасибо за помощь.
upd: В частности нужно переписать на Си след асм инструкции QADD, QSUB, QDADD, QDSUB