基础
在正式开始前,我们要了解基础知识(知道的可以跳过)。
这里只出示我们后面要用的知识。
位与
位与运算符是单个与符号。如果两个位都是1,结果为1,否则结果0。
位异或
如果两个运算位相同,则结果为0,否则为1。
简单模式
举例:
5 + 6
5转化成二进制为0000 0101
6转化成二进制为0000 0110
第一步
0000 0101
0000 0110
——————
0000 0011
进行位异或运算。
第二步
0000 0101
0000 0110
——————
0000 0100
进行位与运算。这个运算用于检测是否要进位。
结果不为0,需要进位。
第三步
0000 0100 -> 0000 1000
对1进行左进位。
第四步
0000 0011
0000 1000
——————
0000 1011
对异或结果及处理后的与运算结果进行异或运算。类似第一步。
第五步
0000 0011
0000 1000
——————
0000 0000
对异或结果及处理后的与运算结果进行与运算。用于检测是否有进位。
类似第二步。结果为0,不需要进位。
答案
第四步的结果:0000 1011,即为11。
困难模式
举例:
51 + 69
51转化成二进制为0011 0011
69转化成二进制为0100 0101
第一步
0011 0011
0100 0101
——————
0111 0110
进行位异或运算。
第二步
0011 0011
0100 0101
——————
0000 0001
进行位与运算。结果不为0,需要进位。
第三步
0000 0001 -> 0000 0010
对1进行左进位。
第四步
0111 0110
0000 0010
——————
0111 0100
对异或结果及处理后的与运算结果进行异或运算。
第五步
0111 0110
0000 0010
——————
0000 0010
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第二步。结果不为0,需要进位。
第六步
0000 0010 -> 0000 0100
对1进行左进位。类似第三步。
第七步
0111 0100
0000 0100
——————
0111 0000
对异或结果及处理后的与运算结果进行异或运算。类似第四步。
第八步
0111 0100
0000 0100
——————
0000 0100
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第五步。结果不为0,需要进位。
看到这里,有些人的心态就崩了:嘈!这是什么东西,这么麻烦,到现在都还有进位!!!
列位,没事,安抚一下情绪,继续吧!
第九步
0000 0100 -> 0000 1000
对1进行左进位。类似第六步。
第十步
0111 0000
0000 1000
——————
0111 1000
对异或结果及处理后的与运算结果进行异或运算。类似第七步。
第十一步
0111 0000
0000 1000
——————
0000 0000
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第五步。结果为0,不需要进位。
啊——终于结束了,上答案吧。
答案
第四步的结果:0111 1000,即为120。