Responsive image

问题 1933 --Hz的进制

1933: Hz的进制

时间限制: 1 Sec  内存限制: 128 MB
提交: 35  解决: 24
[提交][状态][讨论版][命题人:]

题目描述

Hz遇到一个数学问题,想请教聪明的你:给定一个有符号整数类型的数,Hz想知道该数

二进制表示中1的个数。其中负数用补码表示。

输入描述

测试样例输入包含一个有符号整数类型的整数n,注意可以是负数

输出描述

该数二进制表示中1的个数。其中负数用补码表示。

样例输入

1
-5

样例输出

1
31

提示

int占用4字节,32比特(即32位),数据范围为-2147483648~2147483647[-2^31~2^31-1]


负整数的补码求法:将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1



如 -5 其二进制补码1的个数为31



-5对应正数5(00000000000000000000000000000101)



→所有位取反(11111111111111111111111111111010)



→加1    (11111111111111111111111111111011)




来源

 

[提交][状态]
ACM算法攻关部