c语言十进制转换二进制 栈
时间: 2024-10-25 16:03:25 浏览: 37
在C语言中,将十进制数转换为二进制数可以借助栈的数据结构来实现算法。这种方法通常被称为“除2取余法”,也称为“短除法”。下面是基本步骤:
1. 初始化一个空栈,并创建一个整型变量用于存储当前的结果位。
2. 输入待转换的十进制数,并将其对2取余,得到当前最低位的二进制位。
3. 将该余数压入栈中,因为它是从低位到高位组成的。
4. 将输入的十进制数除以2,取商。
5. 重复第2至4步,直到商变为0。
6. 取出栈顶的所有元素,这就是原十进制数的二进制表示,从低到高排列。
以下是简单的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
void decimalToBinary(int num) {
int binary[32] = {0}; // 假设最多32位
int index = 0;
while (num > 0) {
binary[index++] = num % 2; // 取余并存入栈
num /= 2; // 除以2
}
for (int i = index - 1; i >= 0; i--) {
printf("%d", binary[i]);
}
}
int main() {
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
```
阅读全文