码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-05-08 16:38:27      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:二进制   取反   笔试题   

题意

在不使用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;
}

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

标签:二进制   取反   笔试题   

原文地址:http://blog.csdn.net/tule_ant/article/details/45580175

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!