C程序计算二进制数中的尾随零和前导零
首先,让我们了解什么是二进制数中的尾随零。
尾随零
从最低有效位 (LSB) 开始的第一个零之后的位置称为二进制数中的尾随零。
例子
104是十进制数
104 的二进制数是:(MSB) 1101000(LSB)
这里,
MSB 是指最高有效位。
LSB 是指最低有效位。
从第一位设置后的 LSB 开始,有三个零。
尾随零的数量是三个。
示例
以下是计算给定数字的尾随零数量的程序 -
#include<stdio.h>输出结果#include<stdlib.h>
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 number24
Number of trailing ZERO is = 3
前导零
如果位之前的零位置设置为 1,则它们被称为前导零。
例子
94是十进制数。
94 的二进制数是: (MSB) .....001011110(LSB)
前导零的数量是 = 25
程序
下面给出的是计算给定数字的前导零数量的程序。
#include<stdio.h>输出结果#include<stdlib.h>
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 number94
Number of Leading ZERO is = 25
以上是 C程序计算二进制数中的尾随零和前导零 的全部内容, 来源链接: utcz.com/z/353627.html