I am using below function to convert Decimal to binary
char** DEtoBinary(char HexDE[])
{
printf("HexDE = %s\n", HexDE);
int I;
char* deBinary[16];
for (I = 0; I <= 15; I++)
{
//deBinary = deBinary + Hex2Binary(HexDE.Substring(I, 1));
deBinary[I] = strcpy(deBinary, Hex2Binary(substring_added1(HexDE, I, 1)));
}
printf("deBinary = %s\n", deBinary);
return deBinary;
}
Hex to binary function
char *Hex2Binary(char* DE)
{
printf("Inside DE = %s\n", DE);
char *myBinary;
long val = strtol(DE, NULL, 16);
switch(val)
{
case 0:
myBinary = "0000";
break;
case 1:
myBinary = "0001";
break;
case 2:
myBinary = "0010";
break;
case 3:
myBinary = "0011";
break;
case 4:
myBinary = "0100";
break;
case 5:
myBinary = "0101";
break;
case 6:
myBinary = "0110";
break;
case 7:
myBinary = "0111";
break;
case 8:
myBinary = "1000";
break;
case 9:
myBinary = "1001";
break;
case 10: //A
myBinary = "1010";
break;
case 11: //B
myBinary = "1011";
break;
case 12://C
myBinary = "1100";
break;
case 13://D
myBinary = "1101";
break;
case 14://E
myBinary = "1110";
break;
case 15: //F
myBinary = "1111";
break;
}
printf("myBinary = %s\n" ,myBinary);
return myBinary;
}
In Hex2Binary function, myBinary is returning properly, but I need to send whole binary converted string to original caller of char* DEtoBinary(char HexDE[])
original caller is
de1Binary = DEtoBinary(DE[0]);
Example my DE[0] = E234567787888888
Expected is 111000100011........... But I am getting only binary value of last hex value i.e. 8 is 1000