C程序将十进制小数转换为二进制小数
考虑下面给出的示例,以了解如何在C编程语言中将十进制小数转换为二进制小数。
示例1-25到二进制的转换。
步骤1−25/2Rem:1,Quo:12
步骤2−12/2Rem:0,Quo:6
步骤3−6/2Rem:0,Quo:3
步骤4-3/2Rem:1,Quo:1
步骤5-1/2Rem:1,Quo: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输出结果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("输入任何小数: "); 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; }
执行上述程序时,会产生以下结果-
输入任何小数: 5.7 Equivalent binary value: 101.101100
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短