數制轉換(王道)

2022-06-24 10:48:11 字數 1152 閱讀 3168

題目描述:

求任意兩個不同進製非負整數的轉換(2進製~16進製制),所給整數在long所能表達的範圍之內。  

不同進製的表示符號為(0,1,...,9,a,b,...,f)或者(0,1,...,9,a,b,...,f)。  

輸入:

輸入只有一行,包含三個整數a,n,b。a表示其後的n 是a進製整數,b表示欲將a進製整數n轉換成b進製整數。a,b是十進位制整數,2 =< a,b <= 16。  

資料可能存在包含前導零的情況。  

輸出:

可能有多組測試資料,對於每組資料,輸出包含一行,該行有乙個整數為轉換後的b進製數。輸出時字母符號全部用大寫表示,即(0,1,...,9,a,b,...,f)。  

樣例輸入:

15 aab3 7  

樣例輸出:

210306 

1 #include 2 #include

3using

namespace

std;45

intmain()619

else

if(str[i]>='

a' && str[i]<='f'

)22else

if(str[i]>='

a' && str[i]<='f'

)25 temp+=x*c;//

累加該位數字和數字權重的積

26 c*=a;//

計算下一位數字權重27}

28char ans[40

];29 memset(ans,0,sizeof

(ans));

30int size=0;31

while

(temp)

41for(int i=size-1;i>=0;i--)

44 printf("\n"

);45}46

return0;

47 }

p.s.這個題實際上很簡單,我做的一直報錯的原因主要是因為很多初始化都沒寫。像裡面的size,temp,c等都是應該初始化的,如果沒有初始化是做不出來的。

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