把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列库函数

2014-11-24 02:01:56 · 作者: · 浏览: 42

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;
}