题目描述
题目描述
小理在学 $C$ 语言的时候,邝老师告诉他 double
类型的数据在表示小数的时候,小数点后的有效位是有限的,但是没有告诉他这是为什么。
后来他发现 $0.1$ 的二进制是一个无限循环小数 $0.000110011001100110011001100···$ ,如果只取 $27$ 位小数,再转换成十进制的话就变成了 $0.09999999403953552$ ,小理开心的解决了这个问题。
与此同时,小理又有了一个新的问题:一个数在 $64$ 位二进制补码表示下,一共有多少个 $1$。因为小数有无解的情况,所以我们保证输入的都是整数。
输入格式
有多组数据,每一行为一个数字 $n$ 。
输出格式
输出多行,每一行输出这个数字在二进制补码下 $1$ 的个数。
样例输入输出
样例输入
15
样例输出
4
数据范围
对于 $100%$ 的数据,保证都在 unsigned long long
范围内 。
来源/分类
模拟 进制转换