C++ 中计算数字的总比特数
给定一个整数,例如 num,任务是首先计算该数字的二进制数字,然后计算该数字的总位数。
输入 − int number = 50
输出 − 数字中总比特数为 - 6
解释 − 数字 50 的二进制表示为 110010,如果我们将其计算为 8 位数字,则会在开头添加两个 0。因此,数字中的总比特数为 6。
输入 − int number = 10
输出 − 数字中总比特数为 - 6
解释 − 数字 10 的二进制表示为 00001010,如果我们将其计算为 8 位数字,则会在开头添加四个 0。因此,数字中的总比特数为 4。
下面程序中使用的方案如下
将数字输入到整数类型的变量中
声明一个名为 count 的变量,用于存储无符号整数类型的总比特数
从 i 到 1<<7 以及 i > 0 和 i 到 i / 2 开始循环 FOR
在循环内,检查 num & 1 == TRUE 则打印 1,否则打印 0
启动 while 循环以计算总比特数,直到数字不为 0 为止
在循环内,将 count 的值加 1 并设置 number >>=1
打印计数
示例
#include using namespace std; //Count total bits in a number unsigned int bits(unsigned int number){ unsigned int count = 0; unsigned i; //display the total 8-bit number cout<<"8-bit digits of "<<number<<" is: "; for (i = 1 << 7; i > 0; i = i / 2){ (number & i)? cout<<"1": cout<<"0"; } //calculate the total bits in a number 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
广告