I've written a function that does the conversion, but it has an error: 1000 as input gives E8 E3 as little endian, or E3E8 as hex, but it should be 03E8, or E8 03 in little endian format. I literally don't have a clue what might be wrong.
I know the code might be pretty big for it's purpose, but I'd really like to know what's wrong with the error, all other numbers work fine, even negative ones
string decToHex(int num) {
string ret = "";
char c1='0', c2='0';
int res;
if(num>0){
while (num != 0) {
res = num % 16;
num = num / 16;
switch (res) {
case 0: c2 = '0'; break;
case 1: c2 = '1'; break;
case 2: c2 = '2'; break;
case 3: c2 = '3'; break;
case 4: c2 = '4'; break;
case 5: c2 = '5'; break;
case 6: c2 = '6'; break;
case 7: c2 = '7'; break;
case 8: c2 = '8'; break;
case 9: c2 = '9'; break;
case 10: c2 = 'A'; break;
case 11: c2 = 'B'; break;
case 12: c2 = 'C'; break;
case 13: c2 = 'D'; break;
case 14: c2 = 'E'; break;
case 15: c2 = 'F'; break;
}
if (num != 0) {
res = num % 16;
num = num / 16;
switch (res) {
case 0: c1 = '0'; break;
case 1: c1 = '1'; break;
case 2: c1 = '2'; break;
case 3: c1 = '3'; break;
case 4: c1 = '4'; break;
case 5: c1 = '5'; break;
case 6: c1 = '6'; break;
case 7: c1 = '7'; break;
case 8: c1 = '8'; break;
case 9: c1 = '9'; break;
case 10: c1 = 'A'; break;
case 11: c1 = 'B'; break;
case 12: c1 = 'C'; break;
case 13: c1 = 'D'; break;
case 14: c1 = 'E'; break;
case 15: c1 = 'F'; break;
}
}
ret += c1;
ret += c2; ret += " ";
}
return ret;
}
else if(num<0){
unsigned int n = num;
while (n != 0) {
res = n % 16;
n = n / 16;
switch (res) {
case 0: c2 = '0'; break;
case 1: c2 = '1'; break;
case 2: c2 = '2'; break;
case 3: c2 = '3'; break;
case 4: c2 = '4'; break;
case 5: c2 = '5'; break;
case 6: c2 = '6'; break;
case 7: c2 = '7'; break;
case 8: c2 = '8'; break;
case 9: c2 = '9'; break;
case 10: c2 = 'A'; break;
case 11: c2 = 'B'; break;
case 12: c2 = 'C'; break;
case 13: c2 = 'D'; break;
case 14: c2 = 'E'; break;
case 15: c2 = 'F'; break;
}
if (n != 0) {
res = n % 16;
n = n / 16;
switch (res) {
case 0: c1 = '0'; break;
case 1: c1 = '1'; break;
case 2: c1 = '2'; break;
case 3: c1 = '3'; break;
case 4: c1 = '4'; break;
case 5: c1 = '5'; break;
case 6: c1 = '6'; break;
case 7: c1 = '7'; break;
case 8: c1 = '8'; break;
case 9: c1 = '9'; break;
case 10: c1 = 'A'; break;
case 11: c1 = 'B'; break;
case 12: c1 = 'C'; break;
case 13: c1 = 'D'; break;
case 14: c1 = 'E'; break;
case 15: c1 = 'F'; break;
}
}
ret += c1;
ret += c2; ret += " ";
}
return ret;
}
else {
return "00 00 ";
}
}