
就是比较疑惑前面a%2,为什么就是对二进制序列进行操作了,为什么不是对输入的进行%2
关注举个例子 :
十进制整数 12 的 二进制数是 1100
12 % 2 == 0, 表示 二进制最右边 是 0, 然后 12 / 2 = 6 , 剔除二进制的最右边的 0 ,得到 110,即 十进制的 6
6 % 2 == 0,表示 二进制最右边数 是 0,然后 6 / 2 = 3,剔除二进制的最右边的0,得到 11,即 十进制的 3
3 % 2 == 1,表示 二进制最右边数是 1,count个数+1,然后 3 / 2 = 1,剔除二进制的最右边的1,得到 1,即 十进制的 1
1 % 2 == 1,表示 二进制最右边数是 1,count 个数+1,然后 1/ 2 = 0,退出循环
十进制跟二进制转换的关键就是 这个 2。