C程序计算二进制数中的尾随零和前导零!
首先,让我们了解什么是二进制数中的尾随零。
尾随零
从最低有效位(LSB)开始的第一个零之后的位置称为二进制数中的尾随零。
例子
104是十进制数
104的二进制数是:(MSB)1101000(LSB)
这里,
MSB是指最高有效位。
LSB是指最低有效位。
从第一位设置后的LSB开始,有三个零。
尾随零的数量是三个。
示例
以下是计算给定数字的尾随零数量的程序-
#include输出结果#include int main(){ int number, i, trail = 0, size; printf("Enter a number\n"); scanf("%d",&number); size = sizeof(number) * 8; for(i = 0; i < size; i++){ if((number >> i) & 1) { break; } trail++; } printf("Number of trailing ZERO is = %d", trail); return 0; }
执行上述程序时,会产生以下结果-
Enter a number 24 Number of trailing ZERO is = 3
前导零
如果位之前的零位置设置为1,则它们被称为前导零。
例子
94是十进制数。
94的二进制数是:(MSB).....001011110(LSB)
前导零的数量是=25
程序
下面给出的是计算给定数字的前导零数量的程序。
#include输出结果#include int main(){ int number, i, lead = 0, Msb,size; printf("Enter a number\n"); scanf("%d",&number); size = sizeof(number) * 8; Msb=1<<(size-1); for(i = 0; i < size; i++){ if((number << i) & Msb) { break; } lead++; } printf("Number of Leading ZERO is = %d", lead); return 0; }
执行上述程序时,会产生以下结果-
Enter a number 94 Number of Leading ZERO is = 25