思路:
1、使用位移运算
2、位移,即在二进制的基础上对数字进行平移。左移一次,低位补零,高位舍弃。 比如二进制数 00000001(也就是十进制的1),左移一次变成了00000010(也就是十进制的2)
3、设初始值为1,则循环将值左移,直到值为0,记录循环的次数,即总共的位数,再除以8(一个字节=8位),即该类型的字节长度。
代码:
#include <iostream>
using namespace std;
int main()
{
int i=1,c=0;
while(i)
{
i=i<<1;
c++;
}
cout<<c/8;
return 0;
}