數制轉換問題

2021-07-22 12:34:30 字數 788 閱讀 1290

description

在實際問題中經常遇到需要對不同的進製數進行轉換,實現將p進製數轉換成r進製數(2<=p,r<=16)

input

資料報含多行,每行包含三個資料,分別為p,r和待轉換的p進製數d(該數的十進位制表示小於100000000),字母用大寫表示,abcdef,當p為0時,結束輸入。

output

對應每行輸入,只有乙個輸出,且每行只有乙個資料

sample input

10  16  155

16 8 1a

0 0 0

sample output

9b

32

首先將p進製數d轉換成十進位制,然後再轉換成r進製數。注意pow函式可能會產生的誤差。

[cpp]view plain

copy

#include 

#include 

intmain()  

//將十進位制以上的進製的數轉換成純數字

long

sum=0;  

for(i=0;i

sum=sum*p+d[i];//計算對應的十進位制數

aa(sum,r);//轉換成r進製數

printf("\n"

);  

}  return

0;  

}  void

aa(unsigned 

inti ,

intx)  

//輸出對應進製的數

codeup 問題 B 數制轉換

題目描述 求任意兩個不同進製非負整數的轉換 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是...

演算法筆記問題 B 數制轉換

注意的點是輸入的帶字母的可能有大寫也有小寫。題目描述 求任意兩個不同進製非負整數的轉換 2進製 16進製制 所給整數在long所能表達的範圍之內。不同進製的表示符號為 0,1,9,a,b,f 或者 0,1,9,a,b,f include include using namespace std cha...

shell 數制轉換

shell 指令碼預設數值是由10 進製數處理,除非這個數字某種特殊的標記法或字首開頭.才可以表示其它進製型別數值。如 以 0 開頭就是 8 進製.以0x 開頭就是16 進製數.使用 base number 這種形式可以表示其它進製.base值 2 64.使用方法 八進位制轉十進位制 charles...