朱老师,我想请问您一下在vc中实现十进制数与十六进制数之间的相互转换的代码应该怎样编写?有几种方法?
1个回答
展开全部
自己编写过程的话可以连续除以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;
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询