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

Chương trình C để chuyển đổi phân số thập phân sang phân số nhị phân

Hãy xem xét các ví dụ được đưa ra bên dưới để hiểu cách chuyển phân số thập phân sang phân số nhị phân trong ngôn ngữ lập trình C.

Ví dụ 1 - Chuyển đổi từ 25 sang nhị phân.

Bước 1 - 25/2 Rem:1, Quo:12

Bước 2 - 12/2 Rem:0, Quo:6

Bước 3 - 6/2 Rem:0, Quo:3

Bước 4 - 3/2 Rem:1, Quo:1

Bước 5 - 1/2 Rem:1, Quo:0

Vì vậy, số nhị phân tương đương là:11001

Ví dụ 2 - Chuyển đổi từ 0,7 sang nhị phân.

Bước 1 - 0,7 * 2 =1,4, Phần đầu =1

Bước 2 - 0,4 * 2 =0,8, Phần giới thiệu =0

Bước 3 - 0,8 * 2 =1,6, Phần giới thiệu =1

Bước 4 - 0,6 * 2 =1,2, Phần giới thiệu =1

Bước 5 - 0,2 * 2 =0,4, Phần giới thiệu =0

Bước 6 - 0,4 * 2 =0,8, Phần giới thiệu =0

Vì vậy, số nhị phân tương đương là:0,101100

Bước 3 - Cuối cùng, giá trị nhị phân của số thập phân 25,7 như sau -

11001 + 0.101100 = 1101.101100

Ví dụ

Sau đây là chương trình C để chuyển đổi một phân số thập phân thành phân số nhị phân -

#include<stdio.h>
int main(){
   long double fraDecimal,fraBinary,bFractional = 0.0,dFractional,fraFactor=0.1;
   long int dIntegral,bIntegral=0;
   long int intFactor=1,remainder,temp,i;
   printf("Enter any fractional decimal number: ");
   scanf("%Lf",&fraDecimal);
   dIntegral = fraDecimal;
   dFractional = fraDecimal - dIntegral;
   while(dIntegral!=0){
      remainder=dIntegral%2;
      bIntegral=bIntegral+remainder*intFactor;
      dIntegral=dIntegral/2;
      intFactor=intFactor*10;
   }
   for(i=1;i<=6;i++){
      dFractional = dFractional * 2;
      temp = dFractional;
      bFractional = bFractional + fraFactor* temp;
      if(temp ==1)
         dFractional = dFractional - temp;
      fraFactor=fraFactor/10;
   }
   fraBinary = bIntegral + bFractional;
   printf("Equivalent binary value: %lf",fraBinary);
   return 0;
}

Đầu ra

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

Enter any fractional decimal number: 5.7
Equivalent binary value: 101.101100