1361數制轉換升級
阿新 • • 發佈:2020-10-23
描述
今天的程式設計課上,劉老師又給大家講了進位制轉換的知識。我們知道,任何資料、符號在計算機中都是以二進位制的形式表示的,給定一個十進位制數,我們很容易就可以轉化為二進位制數。現在我們要開發一個小工具程式,用來實現任意進位制之間的轉換。可以將給定的m進位制數x轉化為n進位制的P(所有數資料均能在長整型範圍內處理)。
輸入
輸入只有一行,共有三個數x, m,n(2<=m,n<=10)。
輸出
輸出只有一個數,那就是轉換後的結果P。
輸入樣例 1
48 10 8
輸出樣例 1
60
這題是上一題的升級版,上一題是把十進位制數轉換成n進位制數。
這一題是把n進位制數轉換成m進位制數。
我們需要把n進位制數轉換成十進位制數,再轉換成m進位制數就好了。
程式碼:
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 string s; 6 int n,m,t=1,x=0,a[205]={0},c=-1,v; 7 cin>>s>>n>>v; 8 m=s.size(); 9 for(int i=m-1;i>=0;i--) 10 { 11 x=x+(s[i]-48)*t; 12 t=t*n; 13 } 14 while(x!=0)15 { 16 c++; 17 a[c]=x%v; 18 x/=v; 19 } 20 for(int i=c;i>=0;i--) 21 { 22 cout<<a[i]; 23 } 24 return 0; 25 }