考慮下面的例子,以了解如何在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中文網其他相關文章!