如何不转换为二进制快速对十进制数执行XOR运算
十进制数XOR运算方法及快速计算技巧
常规运算步骤
先将两个十进制数转换为等长的二进制串,按位执行相同为0、不同为1的异或规则,最后将得到的二进制结果转回十进制即可。
举两个示例:
7 XOR 3:7转二进制为111,3转二进制补位为011,按位异或得到100,转十进制结果为48 XOR 11:8转二进制为1000,11转二进制为1011,按位异或得到0011,转十进制结果为3
无需完整转换二进制的快速计算方法
以下两个技巧熟练后可以直接口算结果:
- 幂次抵消法
利用XOR运算的特性:两个相同的数异或结果为0,任意数和0异或等于自身,将两个数分别拆分为2的幂次相加的形式,两个数都有的幂次直接抵消,剩下的所有幂次求和就是最终结果。
示例验证:
计算7 XOR 3:7拆分为4+2+1,3拆分为2+1,重叠的2和1抵消,剩余4就是结果
计算8 XOR 11:8拆分为8,11拆分为8+2+1,重叠的8抵消,剩余2+1=3就是结果 - 无进位加法口算
XOR的本质就是二进制无进位加法,你可以从最低位到最高位逐位判断:如果两个数在该位同时为1,直接忽略该位(无进位所以不产生数值),只有单个数字在该位为1时,加上该位对应的2的幂次即可,不用特意写出完整二进制串。
额外示例:计算15 XOR 6,15拆分为8+4+2+1,6拆分为4+2,抵消4、2后剩余8+1=9,结果正确。
内容的提问来源于stack exchange,提问作者notKnown
相关产品推荐
相关产品推荐

