现在的位置: 首页 > 综合 > 正文

求一个二进制数中”1″的个数

2011年05月10日 ⁄ 综合 ⁄ 共 281字 ⁄ 字号 评论关闭

先看代码:

1 #include <stdio.h>
2
3  int fun(int x)
4 {
5 int count =0;
6 while(x)
7 {
8 count++;
9 x = x & (x-1);
10 }
11 return count;
12 }
13
14  void main(void)
15 {
16 int j =0;
17 int m =0;
18 j = fun(9999); // 此处“9999”只是一个举例
19  return;
20 }

 

你猜一下最后 “j”的值是多少? 这个是我在某个文档上看到的一道微软笔试题。

“j”的值为 8

思路:将“9999”转换二进制,看有多少个“1”。若还是理解不了,请手动用笔算(在二进制情况下进行)。

抱歉!评论已关闭.