用棧實現數制轉換(java)

2021-06-23 02:25:41 字數 452 閱讀 6368

十進位制數n和其他d進製數的轉換時計算機實現計算的基本問題,其解決方法很多,其中乙個簡單的演算法基於以下原理:

n=(n div d)*d + n mod d

例如:十進位制數:1348   的八進位制數為:2504  ,運算過程如下:

nn div 8 n mod 8

1348168 4

16821 0

212 5

20 2

基於以上演算法實現如下:

public class 數制轉換 

public static void conversion8(int data)

while(!stack.empty()) }

public static void conversion2(int data)

while(!stack.empty())

}}

用棧轉換數制

有了前面的基礎,這個就變得比較簡單了,這裡就不做細說 include using namespace std define stack init size 100 define stackincrement 10 typedef int elemtype typedef struct sqstack...

順序棧實現數制轉換

include include define stacksize 100 假定預分配的棧空間最多為100個元素 typedef int datatype 應將順序棧的datatype定義改為整型 typedef struct seqstack void main void initstack seq...

Python棧實現數制轉換

數值轉換的原理是整除取餘,但是計算得出的順序和輸出的順序是相反的 即先算出的結果在最低位,此時就需要使用棧來儲存運算結果 def transform x int a int 輸入要轉換的數字以及目標進製輸出轉換後的字串 param x 要轉換的數字 param a 進製 return 字串 asse...