各种进制转换通用代码

由二进制拓展到十六进制

十进制转二进制

void Convert(int n,int x){
	vector<int> answer;
	while(n != 0){
		answer.push_back(n % x);
		n/=x;
	}
	for(int i = answer.size() - 1;i>=0;--i){
		printf("%d",answer[i]);
	}
	printf("\n");
}

十进制转十六进制

需要用字母表示

char IntToChar(int target){
	if(target < 10){
		return target - '0';
	}else{
		return target -10 + 'A';
	}
}
void Convert(int n,int x){
	vector<char> answer;
	if(n == 0){
		answee.push_back('0');
	}else{
		while(n != 0){
			answer.push_back(IntToChar(n % x));
			n/=x;
		}
	}
	for(int i = answer.size() - 1;i>=0;--i){
		printf("%c",answer[i]);
	}
	printf("\n");
}

逆过程

各种进制转换通用代码_第1张图片

M进制转换为N进制

原理M先转换为十进制,在转换为N进制。

你可能感兴趣的:(算法随笔,算法,c++)