Code:
char* convBinToHex(long long int binNumInt){
char binNumChar[16],hexNum[10],arrToStrTemp[MAX];
static char arrToStr[5]="";
int i=0,j=0,temp;
snprintf(binNumChar, sizeof(binNumChar), "%lld", binNumInt); //convert integer to char
while(binNumChar[i]){
binNumChar[i] = binNumChar[i] -48;
++i;
}
--i;
while(i-2>=0){
temp = binNumChar[i-3] *8 + binNumChar[i-2] *4 + binNumChar[i-1] *2 + binNumChar[i] ;
if(temp > 9)
hexNum[j++] = temp + 55;
else
hexNum[j++] = temp + 48;
i=i-4;
}
if(i ==1)
hexNum[j] = binNumChar[i-1] *2 +binNumChar[i] + 48 ;
else if(i==0)
hexNum[j] = binNumChar[i] + 48 ;
else
--j;
strcpy(arrToStr,"");
while(j>=0){
sprintf(arrToStrTemp, "%c",hexNum[j--]);
strcat(arrToStr,arrToStrTemp); //combine all string
}
return arrToStr;
I try this one:
sprintf(arrToStrTemp, "%c",hexNum[j--]);
strcat(arrToStr,arrToStrTemp); //combine all string
and it works..can you tell me what is happening?