
考虑下面的例子,以了解如何在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中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号