溫馨提示×

c語言棧進(jìn)制轉(zhuǎn)換的方法是什么

小億
93
2023-12-12 16:19:46
欄目: 編程語言

在C語言中,可以使用棧來實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換。

首先,創(chuàng)建一個棧,并初始化為空棧。

然后,將要轉(zhuǎn)換的十進(jìn)制數(shù)不斷除以目標(biāo)進(jìn)制,并將余數(shù)依次入棧,直到商為0為止。

最后,將棧中的元素依次出棧,即可得到轉(zhuǎn)換后的結(jié)果。

以下是一個使用棧實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)二進(jìn)制的示例程序:

#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;
}

運(yùn)行程序后,輸入一個十進(jìn)制數(shù),程序?qū)⑤敵鰧?yīng)的二進(jìn)制表示。

注意,這只是一個示例程序,可以根據(jù)需要進(jìn)行修改以實(shí)現(xiàn)其他進(jìn)制的轉(zhuǎn)換。

0