微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将以下内容翻译为中文:C程序将十进制小数转换为二进制小数

将以下内容翻译为中文: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程序将十进制小数转换为二进制小数的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐