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

来源:互联网 发布:灭火器配置计算软件 编辑:程序博客网 时间:2024/05/22 08:24

题意

在不使用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;}
0 0
原创粉丝点击