一个状态码,只会是某一位从1变成了0,不可能从0变成1
比如1001011可能是5(1011011)变成的(第三位变成0),但不可能是0(1111110)变成的,因为最后一位不可能从0变成1。
也就是说,1001011如果是数字n变成的,n的状态码的第1,4,6,7位必须为1,其余随意
所以,把显示器和10个数字的状态码看成二进制数字,分别记作x和y,已知x的某一位为1的时候y的相应位数必须为1,又因为可以用x&y求出x与y均为1的数位 (例如1001011(2) & 1011011(2) = 1001011(2),两数的第1,4,6,7位均为1) 。
综上,当x&y==x的时候,x可能是y变成的,否则不是