C语言中用栈实现进制转换,利用栈实现进制转换问题
進制轉換問題
建立順序棧或鏈棧,編寫程序實現十進制數到二進制數的轉換。
輸入
輸入只有一行,就是十進制整數。
輸出
轉換后的二進制數。
樣例輸入
10
樣例輸出
1010
十進制怎么轉為二進制?十進制轉二進制怎么轉?
十進制整數轉換為二進制整數采用"除2取余,逆序排列"法。具體做法是:用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為小于1時為止,然后把先得到的余數作為二進制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來
利用棧的后進先出性質寫一個10到2進制轉換的小程序,實現順序棧,代碼如下:
#includetypedef struct Stack
{
int data[100];
int top;
}SqStack;
//建立順序棧
void Init(SqStack *&s)
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
//棧的初始化
bool En(SqStack *&s,int e)
{
if(s->top==99)
return false;
s->top++;
s->data[s->top]=e;
return true;
}
//進棧
bool Pop(SqStack *&s)
{
if(s->top==-1)
return false;
s->top--;
return true;
}
//出棧
int main()
{
printf("十進制到二進制轉換程序\n*******************\n");
SqStack *s;
Init(s);
int n,m;
printf("請輸入一個十進制的整數\n");
scanf("%d",&n);
m=n;
while(m!=0)
{
int e=m%2;
En(s,e);
m/=2;
}
printf("其轉化為二進制的數為");
while(s->top!=-1)
{
printf("%d",s->data[s->top]);
Pop(s);
}
return 0;
}
總結
以上是生活随笔為你收集整理的C语言中用栈实现进制转换,利用栈实现进制转换问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言蓝桥十进制转十六进制,蓝桥杯 基础
- 下一篇: android信息中字符个数,在andr