c语言

c语言栈进制转换的方法是什么

小亿
91
2023-12-12 16:19:46
栏目: 编程语言

在C语言中,可以使用栈来实现进制转换。

首先,创建一个栈,并初始化为空栈。

然后,将要转换的十进制数不断除以目标进制,并将余数依次入栈,直到商为0为止。

最后,将栈中的元素依次出栈,即可得到转换后的结果。

以下是一个使用栈实现十进制转二进制的示例程序:

#include <stdio.h>
#define MAX_SIZE 100

int stack[MAX_SIZE];
int top = -1;

void push(int item) {
    if (top >= MAX_SIZE - 1) {
        printf("Stack Overflow\n");
        return;
    }
    stack[++top] = item;
}

int pop() {
    if (top < 0) {
        printf("Stack Underflow\n");
        return -1;
    }
    return stack[top--];
}

void convertToBinary(int num) {
    while (num > 0) {
        push(num % 2);
        num /= 2;
    }
    
    printf("Binary representation: ");
    while (top >= 0) {
        printf("%d", pop());
    }
    printf("\n");
}

int main() {
    int decimalNum;
    printf("Enter a decimal number: ");
    scanf("%d", &decimalNum);
    convertToBinary(decimalNum);
    return 0;
}

运行程序后,输入一个十进制数,程序将输出对应的二进制表示。

注意,这只是一个示例程序,可以根据需要进行修改以实现其他进制的转换。

0
看了该问题的人还看了