十进制转十六进制 代码

 

5621转换为16进制数的方法是“除16取余”方法, 
5621/16=商351余5,16进制最后一位为5 
351/16=商21余15,16进制右边第二位为F 
21/16=商1余5,16进制右边第三位为5 
1/16=商0余1,16进制数右边第四为为1 
商0就不继续除了  
最后的结果为15F5
#include <iostream>
#include <string>

using namespace std;

// 整数转换成字符串
string  int2str( int  num);

 
int main(int argc, char* argv[])
{
	// 十进制转十六进制
	int num = 0;
	cout<<"Please Input A Num "<<endl;
	cin>>num;
	string str_num;
	while(num / 16 != 0)
	{
		int a = num / 16;
		int mod_a = num % 16;
		cout<<"mod_a = "<<mod_a<<endl;
		string s;
		switch(mod_a)
		{
		case 10:
			s = 'A';
			break;
		case 11:
			s = 'B';
			break;
		case 12:
			s = 'C';
			break;
		case 13:
			s = 'D';
			break;
		case 14:
			s = 'E';
			break;
		case 15:
			s = 'F';
			break;
		default:
			s = int2str(mod_a);
			break;
		}
		str_num = s + str_num;
		num = a;
	}
	if(num % 16 != 0)
	{
		int last_a = num % 16;
		str_num = int2str(last_a) + str_num;
	}

	cout<<"The Hex Num = "<<str_num<<endl;
	return 0;
}

string  int2str( int  num)
{
	if (num  ==   0 )
		return   " 0 " ;
	string  str  =   "" ;
	int  num_  =  num  >   0   ?  num :  - 1   *  num;
	while (num_)
	{
		str  =  ( char )(num_  %   10   +   48 )  +  str;
		num_  /=   10 ;
	} 
	if (num  <   0 )
		str  =   " - "   +  str;
	return  str;
}


 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值