麻烦给讲讲下面的程序,我的分不多了,谢谢各位
//编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列库函数
#include <stdio.h>
#include <malloc.h>
#include <string>
char* test3(long num) {
char* buffer = (char*)malloc(11);
buffer[0] = '0';
buffer[1] = 'x';
buffer[10] = '\0';
char* temp = buffer + 2;
for (int i=0; i < 8; i++) {
temp[i] = (char)(num<<4*i>>28);
temp[i] = temp[i] >= 0 ? temp[i] : temp[i] + 16;
temp[i] = temp[i] < 10 ? temp[i] + 48 : temp[i] + 55;
}
return buffer;
}
int main()
{
long num = 27455;
char *s = test3(num);
for (int i = 0; i < strlen(s); i++)
{
putchar(s[i]);
}
putchar('\n');
}