计数二进制中1的位数

计数二进制中1的位数 问题从键盘上输入一个二进制数统计其中1的位数并输出统计结果C实现过程中的关键从键盘上得到的数据依变量类型存储为相应的类型如果将输入类型定义为整型则在读取中只会按十进制形式进行存储如输入二进制数读取到十进制变量中将变成所以用整型变量存储回使数据信息改变在C中可以用字符串存储定义一个string对象用字符的方式处理。字符0和1对应的ASCII码对应为48和49可用48和49判断字符串中的0和1。C#includeiostream #includestring using namespace std; int main() { string str; int count0; cout输入一个二进制数endl; cinstr; for(auto i:str) { coutiendl; if(i49 || i48) continue; else cout这不是二进制数endl; } cout这是二进制数endl; for(auto i:str) { if(i49) count1; } coutThe number of count one is : countendl; return 0; }pythoncount0 flag1 print(输入一个二进制数) while(1): Stringstr(input()) for i in String: if (i!0 and i!1): flag0 if(flag): for i in String: if i1: #count 在python中i就是正正得正不做自增运算 count1 #python支持**,/等复合运算符 print(这个二进制数中共有{0}个1.format(count)) break else: print(程序我不处理这个数据你的类型错了请重新输入)