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 number

24

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 number

94

Number of Leading ZERO is = 25

以上是 C程序计算二进制数中的尾随零和前导零 的全部内容, 来源链接: utcz.com/z/353627.html

回到顶部