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