How to do unsigned saturating addition in C?

前端 未结 17 1827
孤独总比滥情好
孤独总比滥情好 2020-11-27 02:31

What is the best (cleanest, most efficient) way to write saturating addition in C?

The function or macro should add two unsigned inputs (need both 16- and 32-bit ver

17条回答
  •  一向
    一向 (楼主)
    2020-11-27 03:11

    An alternative to the branch free x86 asm solution is (AT&T syntax, a and b in eax and ebx, result in eax):

    add %eax,%ebx
    sbb $0,%ebx
    

提交回复
热议问题