做项目过程中,发现位运算中的异或 ^ 的一些用法,故写总结:
例子:如 原数: 01011,记录,现在要找从左往右数第二位,不同的数,即
目标数: 00011
此时就可以找到一个掩码,convert_mask 01000,此掩码可以通过诸如 1 << ( len - 1 )得到。
01000 与 原数 01011 异或后,得到目标数 00011
总结:可以找到掩码,掩码中为0对应目标数与原数一致的位,掩码中为1对应目标数与原数不一致的位,最后掩码和原数进行异或。
做项目过程中,发现位运算中的异或 ^ 的一些用法,故写总结:
例子:如 原数: 01011,记录,现在要找从左往右数第二位,不同的数,即
目标数: 00011
此时就可以找到一个掩码,convert_mask 01000,此掩码可以通过诸如 1 << ( len - 1 )得到。
01000 与 原数 01011 异或后,得到目标数 00011
总结:可以找到掩码,掩码中为0对应目标数与原数一致的位,掩码中为1对应目标数与原数不一致的位,最后掩码和原数进行异或。