Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình đếm các số không ở cuối và ở đầu trong một số nhị phân

Để bắt đầu, hãy để chúng tôi hiểu những số không ở cuối trong một số nhị phân là gì.

Các số không ở cuối

Vị trí của các số không sau một số không đầu tiên từ bit ít quan trọng nhất (LSB) được gọi là các số không ở cuối trong số nhị phân.

Ví dụ

104 là số thập phân

Số nhị phân của 104 là:(MSB) 1101000 (LSB)

Đây,

  • MSB đề cập đến Bit quan trọng nhất.
  • LSB đề cập đến Bit ít quan trọng nhất.
  • Từ LSB sau tập bit đầu tiên, có ba số 0.
  • Số lượng số không ở cuối là ba.

Ví dụ

Sau đây là chương trình để đếm số lượng các số không ở cuối cho một số nhất định -

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter a number
24
Number of trailing ZERO is = 3

Các số 0 ở đầu

Nếu vị trí của 0 trước bit được đặt thành một , chúng được gọi là số 0 ở đầu.

Ví dụ

94 là số thập phân.

Số nhị phân của 94 là:(MSB) ..... 001011110 (LSB)

Số ZERO hàng đầu là =25

Chương trình

Dưới đây là chương trình để đếm số lượng các số không ở đầu cho một số nhất định.

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter a number
94
Number of Leading ZERO is = 25