Well, I want to thank the people that helped me with my previous number conversion programs, but now I have another that I have some problems with. I've been working on this decimal to hexidecimal program. It outputs strange characters. However, it gives the correct answer with numbers from 0 to 15. Any help would be greatly appreciated.

Thank youCode:#include <iostream.h> #include <math.h> //Converts the decimal to a hexidecimal number which appears as a string //Uses the math.h header file void dectohex (unsigned long int num, char *phex) { char hexnumbers[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; int count = 0; for(int x = 7; x > -1; x--) { if (pow(16, x) < num) { for(int y = 0; y < 16; y++) { if (pow(16, x) * y > num) { phex[count] = hexnumbers[y]; num = num - pow(16, x) * y; count++; } else if (pow(16, x) * y == num) { phex[count] = hexnumbers[y]; phex[count + 1] = '\0'; return; } } } else if (pow(16, x) == num) { phex[count] = hexnumbers[1]; for(int c = count; c >= x; c++) { phex[c] = hexnumbers[0]; } phex[count + x + 1] = '\0'; return; } } } //Main function int main(void) { char hexstring[7]; unsigned long int number; cout << "Enter a number: "; cin >> number; dectohex(number, hexstring); cout << "The hexadecimal number is: " << hexstring; return 0; }