C++ [进制转换]十六进制转化为二进制

C++ [进制转换]十六进制转化为二进制

思路:利用输入十六进制字符串,然后从前往后逐一提取单一字符,转换为整形变量,在应用 switch-case 来对应到此数对应的二进制四位上。

注意:字符转换为整形变量时应该考虑 ASCII 码上的位置转化、输出时的二进制的四位应当用引号引起来。

#include
#include
using namespace std;
int main()
{
	int f,c;
	char e;
	string hexDigit;
	cin>>hexDigit;
	for(int f=0;f<=hexDigit.length();f++)
	{
		e=hexDigit[f];
	if(e>='A'&&e<='F')
	{
		int a=static_cast(e-'A'+10);
		switch(a)
		{
			case 10:cout<<"1010";break;
			case 11:cout<<"1011";break;
			case 12:cout<<"1100";break;
			case 13:cout<<"1101";break;
			case 14:cout<<"1110";break;
			case 15:cout<<"1111";break;
		}
	}
	else if(isdigit(e))
	{
		int b=static_cast(e-'0');
		switch(b)
		{
			case 1:cout<<"0001";break;
			case 2:cout<<"0010";break;
			case 3:cout<<"0011";break;
			case 4:cout<<"0100";break;
			case 5:cout<<"0101";break;
			case 6:cout<<"0110";break;
			case 7:cout<<"0111";break;
			case 8:cout<<"1000";break;
			case 9:cout<<"1001";break;
		}
	}
}
	return 0;
}

你可能感兴趣的:(ACM,C/C++)