日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言中用栈实现进制转换,利用栈实现进制转换问题

發布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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语言中用栈实现进制转换,利用栈实现进制转换问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。