How can I safely average two unsigned ints in C++?

后端 未结 10 908
情书的邮戳
情书的邮戳 2020-12-07 19:05

Using integer math alone, I\'d like to \"safely\" average two unsigned ints in C++.

What I mean by \"safely\" is avoiding overflows (and anything else that can be th

10条回答
  •  -上瘾入骨i
    2020-12-07 19:16

    (((a&b << 1) + (a^b)) >> 1) is also a nice way.

    Courtesy: http://www.ragestorm.net/blogs/?p=29

提交回复
热议问题