In C, would !~b ever be faster than b == 0xff ?

Posted by James Morris on Stack Overflow See other posts from Stack Overflow or by James Morris
Published on 2010-05-04T15:54:54Z Indexed on 2010/05/04 15:58 UTC
Read the original article Hit count: 227

Filed under:
|
|
|

From a long time ago I have a memory which has stuck with me that says comparisons against zero are faster than any other value (ahem Z80).

In some C code I'm writing I want to skip values which have all their bits set. Currently the type of these values is char but may change. I have two different alternatives to perform the test:

if (!~b)
    /* skip */

and

if (b == 0xff)
    /* skip */

Apart from the latter making the assumption that b is an 8bit char whereas the former does not, would the former ever be faster due to the old compare to zero optimization trick, or are the CPUs of today way beyond this kind of thing?

© Stack Overflow or respective owner

Related posts about c

    Related posts about bits