c语言十进制转二进制函数
时间: 2023-09-20 12:13:36 浏览: 90
十进制转二进制可以使用除2取余法,即将十进制数不断除以2,每次取余数,直到商为0为止,将余数倒序排列即为该数的二进制表示。例如十进制数15的二进制表示为1111。在程序实现中,可以使用循环语句不断除以2,并使用栈保存余数,最后将栈里的元素倒序输出即可。二进制转十进制可以使用权值法,即将二进制数每一位乘以对应的权值,然后求和得到十进制表示。例如二进制数1011的权值为1*2^3+0*2^2+1*2^1+1*2^0=11。在程序实现中,可以使用循环语句遍历二进制数的每一位,并使用指数变量保存当前位的权值,然后将每一位乘以对应的权值求和即可。
相关问题
c语言十进制转二进制递归算法
C语言实现十进制转二进制的递归算法如下:
```c
#include <stdio.h>
void decimalToBinary(int decimal) {
if (decimal == 0) {
return;
}
decimalToBinary(decimal / 2);
printf("%d", decimal % 2);
}
int main() {
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
printf("%d的二进制表示为:", decimal);
decimalToBinary(decimal);
printf("\n");
return 0;
}
```
此递归算法的思路是不断地将十进制数除以2,直到商为0停止递归。在每一次递归中,先递归调用除以2的商,然后输出余数。递归终止条件是当十进制数等于0时,即所有位数都被转化为二进制。
首先,在`main`函数中,通过`scanf`函数获取用户输入的十进制数,保存在`decimal`变量中。
然后,调用`decimalToBinary`函数,将`decimal`作为参数传递进去。
在`decimalToBinary`函数中,首先判断`decimal`是否为0,如果是,则直接返回。否则,继续递归调用`decimalToBinary`函数,参数为`decimal`除以2的商。然后,输出`decimal`对2取余的结果,即该位的二进制数值。
最后,在`main`函数中,输出转化完成的二进制数。
例如,输入十进制数10,经过递归转换后输出的二进制数为1010。
c语言十进制转二进制代码
以下是一个C语言的代码示例,用于将十进制数转换为二进制数:
```c
#include <stdio.h>
void dectobin(int n) {
if (n == 0) {
return;
}
dectobin(n / 2);
printf("%d", n % 2);
}
int main() {
int n;
scanf("%d", &n);
dectobin(n);
return 0;
}
```
这段代码使用递归的方式将十进制数转换为二进制数。首先,判断输入的数是否为0,如果是0则直接返回。否则,将输入的数除以2并递归调用函数本身,然后打印余数。这样就可以逐步将十进制数转换为二进制数。