题意
在不使用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;}
『 不可能 』只存在於蠢人的字典里