您的位置:首页 > 其它

腾讯2015实习校招-整形长度算法思路实现

2015-05-08 15:03 246 查看

题意

在不使用sizeof()函数的情况下,取出本机的整形所占位数,如32位、64位等。

分析

我看到题目后的第一思路就是统计二进制中1的个数。但是位数不确定啊,我用了0取反,然后保存的二进制就是N个1了,现在发现-1就行。用unsigned int保存,移位操作统计就好,一个字节8位,所以每次左移8位。

#include <stdio.h>

int main(void)
{
int a =0;
unsigned int b =~a;
int count=0;
while(b!=0){
b>>=8;
count++;
}
printf("%d",count);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二进制 取反 笔试题