朱老师,我想请问您一下在vc中实现十进制数与十六进制数之间的相互转换的代码应该怎样编写?有几种方法?

 我来答
zhuhuaizhong
2013-06-24 · TA获得超过7276个赞
知道大有可为答主
回答量:3978
采纳率:63%
帮助的人:3600万
展开全部

  自己编写过程的话可以连续除以16把余数倒排即可,这其中余数由于会有超过10的情况,需要用A-F来代表,所以存储十六进制数的,往往用字符数组。

  下面代码虽然很糙但比较好理解。

	int dec=255;	//要转换的十进制数
char hex[256]={0}; //准备存储十六进制字符串
int shang,yushu;
shang=dec;
int i=254; //指示要存储的第一个数据的位置,因为要余数倒排,所以从最后开始存放
while(shang!=0)
{
yushu=shang%16;
hex[i]=yushu>10?'A'+yushu-10:'0'+yushu;//根据情况转换为字符0-9或者A-F
i--;//指示到下一个要存放余数的位置
shang=shang/16;
}

cout<<&hex[i+1]<<endl; //从最后得到的一个余数开始输出整个串

  想省事的话可以直接用系统提供的 _itoa(int,char *,int) 函数,该函数定义在 stdlib.h 中,第三个参数即是想要转换的进制。

int dec=255;
char hex[256]={0};
_itoa(dec,hex,16);
cout<<hex<<endl;
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式