robin88 • 9个月前
int bitLength(int n) {
if (n == 0) return 1; // 0的位数是1
int length = 0;
unsigned int un = static_cast<unsigned int>(n); // 防止在移位时遇到负数的问题
while (un) {
un >>= 1; // 将数右移一位
++length; // 位数加1
}
return length;
}
int main() {
int decimal =0;
std::cin>>decimal;
int k= bitLength(decimal);
std::cout<< k << std::endl;
return 0;
}
评论:
请先登录,才能进行评论