在C ++中计算数字中的总位数
我们给定一个整数,即num,任务是首先计算一个数字的二进制数字,然后计算一个数字的总数字。
输入-整数=50
输出-总数中的总位数为-6
说明-数字50的二进制表示为110010,如果我们以8位数字计算,则将在开头附加两个0。因此,一个数字的总位数为6。
输入-整数=10
输出-总数中的总位数为-6
说明-数字10的二进制表示形式是00001010,如果我们以8位数字进行计算,则将在开头添加四个0。因此,一个数字的总位数为4。
以下程序中使用的方法如下
在整数类型的变量中输入数字
声明一个变量计数以存储unsignedint类型的位的总数
从i到1<<7并且i>0和i到i/2的启动循环
在循环中,检查num&1==TRUE,然后打印1,否则打印0
启动循环,同时计算位数不为0的总位数
在循环内部,将count的值增加1并设置数字>>=1
打印计数
示例
#include using namespace std; //计算一个数字中的总位数 unsigned int bits(unsigned int number){ unsigned int count = 0; unsigned i; //显示总的8位数字 cout<<"8-bit digits of "<<number<<" is: "; for (i = 1 << 7; i > 0; i = i / 2){ (number & i)? cout<<"1": cout<<"0"; } //计算一个数字的总位数 while (number){ count++; number >>= 1; } cout<<"\nCount of total bits in a number are: "<<count; } int main(){ int number = 50; bits(number); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
8-bit digits of 50 is: 00110010 Count of total bits in a number are: 6