476  求一个数的补数

                                                                                                                                               点击此处返回总目录

 

 

【题目】

476  求一个数的补数

 

【分析】

0与1异或得1,1与1异或的0。所以与1异或得到相反的数。

101^111 = 010

1 ^ 1 = 0

但是5的二进制是:

00000101 与11111111异或得到:11111010,前面的就不对了。因此不能与全1异或,1的位数要等于给的数字的位数。

剩下的问题就是求一下数字有多少位。可以用一个循环来做。

 

 

【代码】

476  求一个数的补数

 

【结果】

476  求一个数的补数