描述
求任意兩個不同進製非負整數的轉換(2進製~36進製),所給整數在long所能表達的範圍之內。
不同進製的表示符號為(0,1,...,9,a,b,...,z)或者(0,1,...,9,a,b,...,z)。
關於輸入
輸入只有一行,包含三個整數a,n,b。a表示其後的n 是a進製整數,b表示欲將a進製整數n轉換成b進製整數。 a,b是十進位制整數,2 ≤ a,b < 36。
關於輸出
輸出包含一行,該行有乙個整數為轉換後的b進製數。輸出時字母符號全部用大寫表示,即(0,1,...,9,a,b,...,z)。
例子輸入
15 aab3 7
例子輸出
210306
提示可以用字串表示不同進製的整數
#includechar
symbol
[256
];/* 數對應的符號 */
intvalue
[256
];/* 符號代表的數 */
void
setup
()for(j
=10;j
<36;
++j)}
long
from_base
(char*n
,inta)
returnx;
}char
*to_base
(longx,
char*s
,intb)
while(x
);returns;
}int
main();
longx=
0;char*p
=0;scanf
("%d %s %d",&
a,n,
&b);setup
();x
=from_base(n
,a);p
=to_base(x
,n+255,b
);printf
("%s\n"
,p);return0;
}
shell 數制轉換
shell 指令碼預設數值是由10 進製數處理,除非這個數字某種特殊的標記法或字首開頭.才可以表示其它進製型別數值。如 以 0 開頭就是 8 進製.以0x 開頭就是16 進製數.使用 base number 這種形式可以表示其它進製.base值 2 64.使用方法 八進位制轉十進位制 charles...
數制的轉換
鏈棧實現數制的轉換 include using namespace std define ok 1 define error 0 define overflow 2 typedef int status define e 8 typedef struct snodesnode,linkstack s...
數制轉換問題
description 在實際問題中經常遇到需要對不同的進製數進行轉換,實現將p進製數轉換成r進製數 2 p,r 16 input 資料報含多行,每行包含三個資料,分別為p,r和待轉換的p進製數d 該數的十進位制表示小於100000000 字母用大寫表示,abcdef,當p為0時,結束輸入。outp...