对位运算符以及与运算符的使用
转载一下http://blog.csdn.net/senyelicone/article/details/52196039
在这到题中用到了与运算符与移位运算符。
需要注意的就是数据类型,需要用到长整型,如果是用左移的话,就更加需要注意
所有数据在内存中都是以二进制形式存放的,其中有一些位是 1,而另一些位是 0。
例如,整数 100 的二进制表示为 1100100,其中 1 的位数是 3;整数 15 的二进制表示为 1111,其中 1 的位数是 4;整数-15 的 64 位二进制表示为 1111111111111111111111111111111111111111111111111111111111110001,其中 1 的位数是 61。
现在有 N 个整数,要求按照 64 位二进制补码表示中 1 的位数从大到小进行排序。若两个数的二进制表示中 1 的位数相同,则按照数本身值由小到大排序。
例如:数 100,15,0,30,7,-15,100,-100 排序后的结果为 :
-15,-100,15,30,7,100,100,0。
Input
第 1 行:整数