1. 程式人生 > 實用技巧 >1361數制轉換升級

1361數制轉換升級

描述

今天的程式設計課上,劉老師又給大家講了進位制轉換的知識。我們知道,任何資料、符號在計算機中都是以二進位制的形式表示的,給定一個十進位制數,我們很容易就可以轉化為二進位制數。現在我們要開發一個小工具程式,用來實現任意進位制之間的轉換。可以將給定的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 }