Files
suanfa/public/c/ch3/image/get2Len.c
T

30 lines
598 B
C
Raw Normal View History

2026-06-14 23:45:55 +08:00
#include <stdio.h>
#include <math.h>
int binaryLength1(int i) {
if (i == 0) return 1;
int k = 1;
i = i / 2;
while (i > 0) {
k++;
i = i / 2;
}
return k;
}
int binaryLength2(int n) {
if (n == 0) return 1;
return (int)(log2(n)) + 1;
}
int binaryLength3(int n) {
if (n == 0) return 1;
int length = 0;
while (n > 0) {
n >>= 1; // 右移一位,相当于除以2
length++;
}
return length;
}
int main(){
printf("%d\n",binaryLength1(8));
printf("%d\n",binaryLength2(8));
printf("%d\n",binaryLength3(8));
}