C++任意字符的轉換

如果有錯請評論指出;參考:https://blog.csdn.net/langmanqishizaijia/article/details/51087443

#include<iostream>
#include<bitset>
#include<string>
using namespace std;

//in,是輸入進來的數
//out是輸出的字
//begin表示輸入進制
//end表示輸出的進制

void change(string in,string &out, long begin,long end){
	
	//首先轉化成十進制;
	int sum = 0;
	for (int i = 0; i < in.length;i++){
	
		long t = in[i];
		if (t>=0 && t<=9){
			sum = t + sum*begin;
		}
		else sum = (t - 'A' + 10) + sum*begin;
	}

    //十進制轉成end進制
	out = "";
	while (1){
		long j = sum%end;
		sum /= end;
		if (j <= 9) out = to_string(j) + out;
		else out = to_string(j - 10 + 'A' ) + out;
		if (num == 0)break;
	}


	cout << sum;
}

int main(){
	
	/*進制輸出
	int i;
	cin >> i;
	cout << std::hex << i<<endl;
	cout << std::oct << i << endl;
	cout << std::dec << i << endl;
	cout << bitset<8>(i) << endl;
    */
	string in,out;
	long begin, end;
	
	while (cin >> in >> begin>>end){
		change(in, out, begin, end);
		cout << out;
	}
	
	return 0;
}
發佈了28 篇原創文章 · 獲贊 7 · 訪問量 4673
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章