编写程序将一个10进制纯小数转化为二进制 C语言
时间: 2024-10-20 18:10:14 浏览: 14
在C语言中,你可以使用位操作或者数学运算来将10进制的小数转换为二进制。下面是一个简单的函数示例,它使用乘2取整法来实现:
```c
#include <stdio.h>
// 将小数部分转换为二进制字符串
void decToBin(double num) {
long int integral = (long int)num; // 取整数部分
double fractional = fmod(num, 1); // 取小数部分
// 对小数部分进行循环直到足够精确
char binary[64]; // 预留空间以防过长
int i = 0;
while (fractional > 0 && i < sizeof(binary)) {
if (fractional * 2 >= 1) {
binary[i] = '1';
fractional -= 1;
} else {
binary[i] = '0';
}
i++;
fractional *= 2;
}
// 如果有前导零,去掉它们
for(int j = 0; j < i; ++j) {
if(binary[j] != '0') break;
}
binary += j;
printf("小数 %f 转换成二进制是 %.20s\n", num, binary);
}
int main() {
double decimal = 3.75;
decToBin(decimal);
return 0;
}
```
这个程序会打印出 `3.75` 转换为二进制的结果,例如:`011.01`。
阅读全文