Bitwise equality

bit-manipulation, c, c#, optimization

Solution

I doubt it can be done in fewer operations. That looks optimal. Perhaps you could store ~(a^b) in a lookup table (256*256 entries)? I doubt you would get much benefit and possibly even make things worse, but you could try it.

Problem

I need to perform a bitwise equality between two bytes. That means that for instance if I have two bytes: 00011011 and 00011110 the result is 11111010 The only fast way I see is to use the following statement ``` byte a, b;//set input bytes byte c = ~(a^b);//output bytes ``` But I wonder if there is a faster solution for this. After these equality operation I want to mask the bits I need. So I need to use an AND-operation. So the code becomes: ``` byte a, b;//set input bytes byte m;//mask, intresting bits are set to 1, others to 0 byte c = (~(a^b))&m;//output bytes ``` aren't there any faster and more simple methods that don't need to use all those bitwise operations because this part of the code will be called very often.

Original source