例題 12 9 數制轉換

2021-06-27 21:25:05 字數 1099 閱讀 9351

描述

求任意兩個不同進製非負整數的轉換(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

提示可以用字串表示不同進製的整數

#include 

char

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...