C 语言程序:统计二进制数中尾随零和前导零的数量
首先,让我们了解一下二进制数中的尾随零是什么。
尾随零
从最低有效位 (LSB) 开始,第一个 1 之后的所有 0 的位置称为二进制数中的尾随零。
示例
104 是十进制数
104 的二进制数为:(MSB) 1101000(LSB)
这里,
- MSB 指的是最高有效位。
- LSB 指的是最低有效位。
- 从 LSB 开始,第一个 1 之后有三个 0。
- 尾随零的数量为三个。
示例
下面是计算给定数字的尾随零数量的程序:
#include<stdio.h>
#include<stdlib.h>
int main(){
int number, i, trail = 0, size;
printf("Enter a number
");
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
前导零
如果 0 **位于设置为 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
");
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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP