今天在蟑螂的指导下弄了个小程序: 设计函数,参数为一个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比较好 } 
|