任意進製整數之間的相互轉換(C 實現)

2021-07-06 09:09:08 字數 1342 閱讀 3773

任意進製整數之間的相互轉換經常出現在各大it公司的筆試面試中,這裡我對其中的演算法和實現**做個總結。

演算法思想:例如,要求將x1進製的數r1轉化成為x2進製的數r2,首先應該將r1轉化為十進位制的數r_decimal,然後再將十進位制數r_decimal轉化為x2進製的數r2。(1

下面是我用c++實現的**,已經在visual c++ 6.0上測試通過了,程式沒有考慮太多的細節(整數和進製合法性的判斷等),主要是為了實現演算法的思想,如果想做的再好一點,個人感覺應該用類實現,將整數封裝成class。

例如,

class number

;

程式**:

[cpp]view plain

copy

#include 

#include 

#include 

using

namespace std;  

/*將乙個整型數字轉化成字元型數字,例如 8->'8',12->'c'*/

char numtochar(char num)  

/*num是10到15之間的數字*/

else

}  return num;  

}  /*將乙個字元型數字轉化成整型數字,例如 '8'->8,'c'->12*/

int chartonum(char &num)  

/*num是'a'到'f'之間的字元型數字*/

else

}  return num;  

}  /*將任意進製整數轉化為十進位制整數,返回轉化後的十進位制整數,num為任意進製整數,binary為該整數的進製*/

int anybinarytodecimal(string num,int binary)  

return decimal_num;  

}  /*將十進位制轉化為任意進製,decimal為十進位制整數,binary為需要轉化的進製*/

void decimaltoanybinary(int decimal,int binary)  

/*輸出轉化後的x進製整數*/

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

coutint main()    

任意進製整數之間的相互轉換(C 實現)

任意進製整數之間的相互轉換經常出現在各大it公司的筆試面試中,這裡我對其中的演算法和實現 做個總結。演算法思想 例如,要求將x1進製的數r1轉化成為x2進製的數r2,首先應該將r1轉化為十進位制的數r decimal,然後再將十進位制數r decimal轉化為x2進製的數r2。1 下面是我用c 實現...

進製之間的相互轉換

進製的區別 進製常用的有二進位制 八進位制 十進位制以及十六進製制。電腦的讀寫就是使用的二進位制 例 當值為十的時候,怎麼區分二進位制 八進位制 十進位制 十六進製制 二進位制 0b1010 八進位制 012 十進位制 10 十六進製制 0xa 一 進製的運算與轉換 二進位制運算與轉換 0000 0...

進製之間的相互轉換

在我們學習的過程中,接觸過二進位制,八進位制,十進位制,十六進製制,不過這些進製是怎麼相互轉化的呢?咱們一起來看一下 首先,了解一下各個進製,二進位制由0和1組成,八進位制是由0 7組成,十進位制就不用說了,大家都很熟悉,十六進製制呢,是由0 9和abcdef組成滴 下面嘞,我們一起來學習一下二進位...