atoi:
#include
int atoi(const char* str)
{assert(NULL != str);
while(' ' == *str)++str;
bool sign_flag = 0;
if('-' == *str){sign_flag = 1;
++str;
}
int sum = 0;
while(*str <= '9' && *str >= '0')
{sum = sum * 10 + *str - '0';
++str;
}
if(sign_flag)
return -sum;
return sum;
}
int main(int argc, char* argv[])
{char str[12];
std::cin >> str;
std::cout << atoi(str) << std::endl;
return 0;
}
统计整数的二进制表示里有几个1:
#include
int main(int argc, char* argv[])
{int n = 0;
int count = 0;
scanf("%d", &n);while(n != 0)
{++count;
n = n & (n - 1);
}
printf("%d/n", count);}
本文介绍了一个atoi函数的手动实现方法,并提供了一种统计整数二进制表示中1的数量的高效算法。

1326

被折叠的 条评论
为什么被折叠?



