首頁 >後端開發 >C++ >將以下內容翻譯為中文:C程式將十進制小數轉換為二進位小數

將以下內容翻譯為中文:C程式將十進制小數轉換為二進位小數

王林
王林轉載
2023-09-10 12:37:02836瀏覽

將以下內容翻譯為中文:C程式將十進制小數轉換為二進位小數

考慮下面的例子,以了解如何在C程式語言中將十進位小數轉換為二進位小數。

範例1 - 將25轉換為二進位。

步驟1 - 25 / 2 餘數:1,商數:12

#步驟2 - 12 / 2 餘數:0,商數:6

步驟3 - 6 / 2餘數:0,商數:3

步驟4 - 3 / 2 餘數:1,商數:1

步驟5 - 1 / 2 餘數:1,商數:0

因此,等價的二進位數是:11001

範例2 - 將0.7轉換為二進位。

步驟1 - 0.7 * 2 = 1.4,整數部分= 1

步驟2 - 0.4 * 2 = 0.8,整數部分= 0

步驟3 - 0.8 * 2 = 1.6,整數部分= 1

步驟4 - 0.6 * 2 = 1.2,整數部分= 1

步驟5 - 0.2 * 2 = 0.4,整數部分= 0

步驟6 - 0.4 * 2 = 0.8,整數部分= 0

因此,等價的二進制數是:0.101100

步驟3 - 最後,十進制數25.7的二進制值如下:

11001 + 0.101100 = 1101.101100

範例

以下是將十進位小數轉換為二進位小數的C程式:

 即時示範

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

輸出

#當執行上述程序時,會產生以下結果-

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

以上是將以下內容翻譯為中文:C程式將十進制小數轉換為二進位小數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除