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
廣告