數制轉換 用棧實現將乙個非負整數轉換為與之對應二,八,十六進位數。

2025-01-19 11:30:28 字數 4115 閱讀 8894

1樓:網友

看嚴蔚敏-資料結構-節棧的應用舉例- 資料轉換。

書上第48頁。

用棧實現,輸入乙個十進位數,轉換成十六進位輸出(c語言)

2樓:網友

工具/材料:以microsoft visual studio 2010為例。

1、首先在桌面上,點選「microsoft visual studio 2010」圖示。

2、然後在該介面中,先定義棧最大的儲存空間。

2、其次在該介面中,編寫初始化空棧函式**。

3、之後在該介面中,編寫判斷空棧函式**。

4、接著在該介面中,編寫判斷棧滿函式**。

5、其次在該介面中,編寫進棧、出棧函式**。

6、接著在該介面中,編寫進位轉化函式**。

7、之後在該介面中,編寫清空棧函式**。

8、最後在該介面中,編寫主函式呼叫各個函式**。

3樓:遺漏的沙礫

#include

#include

#define initsize 20

#define increment 10

typedef char elemtype;

typedef struct stackstack;

void initstack(stack &s)//初始化棧入棧,棧滿則追加棧空間。

出棧int empty(stack &s)//判棧空void clear(stack &s)

void conversion(int n,int n)//進位轉換}while(!empty(s))

clear(s);

void main()

利用堆疊,設計演算法將乙個十進位正整數轉換為十六進位數輸出。(先設計儲存結構,在設計演算法,演算法要加

4樓:小雨手機使用者

儲存結構就是int 陣列 stack,演算法就是每次輸入乙個數字x,進行下面的迴圈:

1、x 不為零繼續,為零則跳出。

2、每次將x 餘16 的結果入棧(實際上是將x 的16 進位的第i 位入棧,i 表示迴圈次數)。

函式式程式設計語言中,不同子函式的引數的種類和個數是不相同的,編譯器也是使用堆疊來儲存子程式的引數。

遞迴能夠增強語言的表達能力和降低程式設計難度。遞迴程式的遞迴深度通常是不確定的,需要將子程式執行的返回位址儲存到堆疊這種先進後出式的結構中,以保證子程式的返回位址的正確使用順序。

資料結構:輸入十進位整數n,藉助棧將其轉換為r進位整數並輸出

5樓:新科技

任意輸入乙個十進位。

整數n,要求借助棧將其轉換為對應的r進位整數並輸出。

解題分析

將乙個十進位整數 n 轉換為 r 進位的數,其轉換方法為輾轉相除法。以洞行 n=1234,r=8 為例,轉換方法如下。

輾轉相除法步驟如下

(1)初始化乙個棧(順序棧或鏈棧漏擾均可),輸入n和r;

(2)判斷n的值,為0時轉(4),否則將 n % r所得結果壓入棧中返顫旦;

(3)用n / r代替n,轉(2);

(4)將棧中所有元素出棧,出棧序列即為結果

執行結果。

寫一演算法,將非負十進位轉換為二進位

6樓:聽不清啊

1)輸入乙個十進位數n,k=0

2)將餘數n%2的值儲存到陣列元素a[k]3)計算整數除法的商n=n/2,k=k+14)若n等於0,則轉5),否則轉2)

5)k=k-1,依次輸出陣列元素a[k]~a[0]

資料結構中用c語言寫:利用棧實現十進位數 n和其它 d進位數的轉換。

7樓:仁昌居士

工具/材料:以microsoft visual studio 2010為例。

1、首先在桌面上,點選「microsoft visual studio 2010」圖示。

2、然後在該介面中,輸入初始化棧的**「void initstack(sqstack *ss)」。

4、之後在該介面中,輸入壓棧的**「int pushstack(sqstack *ss,int e) sn->elem = e; sn->next = ss->top; ss->top = sn; return 1;}」

5、之後在該介面中,輸入彈棧的**「int popstack(sqstack *ss) printf("%d",s->top->elem); sqnode * ss = s->top->next; free(s->top); s->top = ss; return 1;}」

6、然後在該介面中,輸入進位轉換**「void systemconvert(int number,int system,sqstack *ss)}」

7、最後在該介面中,輸入主函式「int main() return 0;}」

8樓:網友

#include

#include

#include

int main()

for(j=i-1;j>=0;j--)

return 0;

/沒做完答,吃完飯再說吧!

將十進位數345.728轉化為二進位,八進位,十六進位

9樓:教育仁昌

將十進位數345.728轉化二進位為101011001.10111010,轉化八進位為531.56457065。,轉化十六進位為159.ba5e353f。

十進位數轉換為其他進位數時,由於整數和小數的轉換方法不同,所以先將十進位數的整數部分和小數部分分別轉換後,再加以合併。

整數部分345=1*2^8+1*2^6+1*2^4+1*2^3+1*2^0=1*16^2+5*16^1+9*16^0。即二進位101011001,八進位531,十六進位159。

小數部分0.728=0.728*2=0.59375,0.59375*2=1.1875,0.1875*2*2=0.75,0.75*2=1.5,0.5*2=1。二進位數為0.010011。即十進位數17.296875=二進位數(10001+0.010011)。

小數部分0.728×2=1.456,整數位為1,二進位數為,整數位為0,二進位數為,整數位為1,二進位數為1。一直迴圈乘不盡,所以保留8位。即十進位數0.728=二進位為0.10111010。

小數部分0.728×8=5.824,整數位為5,八進位數為,整數位為6,八進位數為,整數位為4,八進位數為4。一直迴圈乘不盡,所以保留8位。即十進位數0.728=八進位為0.56457065。

小數部分0.728×16=11.648,整數位為11,十六進位數為,整數位為10,十六進位數為,整數位為5,十六進位數為5。一直迴圈乘不盡,所以保留8位。即十進位數0.728=十六進位為0.ba5e353f。

10樓:網友

345/16=21 餘數9,二進位形式100121/16=1 餘數5,二進位形式01011/16=0 餘數1

345d=159h=101011001b=531o整數11,十六進位形式b,二進位形式1011整數10,十六進位形式a,二進位形式1010整數5,二進位形式0101

整數14,十六進位形式e,二進位形式1110無窮小數。

將八進位765.43轉成十六進位數字,敘述轉換過程及結果

11樓:

摘要。親,您好,很榮幸為您解答哦。以二進位位中介,即先將八進位數按照一位拆三位的方法轉換為二進位,在對這個二進位數使用四位合一位的方法轉換為十六進位。

親,您好,很榮幸敏雀為您解答哦。以二進位位中介,即先將八進位數按照一位拆三位的方法轉換為橋信早二進位,在對這個二進位坦握數使用四位合一位的方法轉換為十六進位。

結果是7d63

希望我的對您有幫助哦。

如果對我的滿意希望您可以給乙個贊哦,如果以後有其它問碧念題也可以關注我方便以後持續諮詢哦。也祝滑拍您生活愉悔讓困快,萬事順利<>

PWM波的電平怎麼轉換?用什麼晶片比較好?求高手大俠幫幫忙

pwm波的電平可以先進入一個簡單的限幅整形再進入一個2級的rc積分再由運放隔離輸出即可。隔離輸出如是射隨器形式,則最高輸出即pwm100 佔空時為限幅整形的幅值,最低為0 佔空的0值。微控制器好多都直接有pwm輸出。也可以軟體實現,其實就是對輸出埠0與1的寫操作。但是得需要資料採集卡。求一款5v轉1...

PHP怎麼實現大小寫轉換,怎麼轉換php字母大小寫

php內建有大小寫轉換函式。strtolower 將字串轉換為小寫 strtoupper 將字串轉換為大寫 怎麼轉換php字母大小寫 php自帶函式,可以實現字母大小寫的轉換 1.所有字母變大寫 strtoupper 2.所有字母變小寫 strtolower str abc new str strt...

雙卡手機,兩張卡都有流量。怎樣轉換用哪張卡的流量

看你的主網路設定了,不放心的話,關掉一個資料網路用單一個上吧,一部手機兩張卡,兩張卡都有流量,怎麼知道是在用哪張卡的流量?有什麼先後順序麼?你可以設定流量開啟,選擇卡1或者卡2,選擇的是哪張卡,用的就是那張卡的流量。進入手機設定 行動網路 資料卡中切換上網絡卡,如果沒有資料卡的選項,說明您的手機是移...