设计函数,参数为一个int值,返回此数字的16进制字符串。

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

今天在蟑螂的指导下弄了个小程序:

设计函数,参数为一个int值,返回此数字的16进制字符串。

解答:

#include <iostream>

char* func(int value)

{

char a[16]={'0','1','2','3','4','5','6',

'7','8','9','A','B','C','D','E','F'};

int b=0X0f;

char *ret=new char[11];

//这个地方可以看出C的精巧来,就象是在微雕

for(int i=0;i<8;++i)

{

//value&b是把b作为掩码来与,(value&b)>>(i*4)是再移位,

//a[(value&b)>>(i*4)]是在a[]中查找相应的字符

ret[9-i]=a[(value&b)>>(i*4)];

//把b左移

b=b<<4;

}

ret[0]='0';

ret[1]='x';

ret[10]='\0';

return ret;

}

main()

{

char* pl=func(12);

std::cout<<pl<<std::endl;

delete[] pl; //释放堆内存

pl=NULL; //释放pl后,pl成为野指针,再把他置为NULL比较好

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航