PTA
1 #include <stdio.h> 2 int main(){ 3 //无符号整型才能表达32位二进制数对应的十进制数 4 unsigned int decimalNum; 5 unsigned int digitsCount=0; 6 scanf("%u", &decimalNum); 7 while(decimalNum){ 8 digitsCount++; 9 decimalNum /= 2; 10 } 11 printf("%u\n", 32-digitsCount); 12 13 return 0; 14 }
分析:
1、实际是求十进制数转成二进制后的位数
2、将待求数一直除以2直到0时的次数,即等于对应二进制数的位数