This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Hex To Character Conversion Problem

I am Trying to Split a hexa value and read it over the serial port let me show you what i mean by that :

<per>
char arr[10]=(0);
int i,k,l;

arr[0]=0x11;
arr[1]=0x12;
: :
arr[7]=0x59;
arr[8]=0x5F;
arr[9]=0x90;

for(i=0;i<10;i++)
{ k=(arr[i]/0x10)>0x09?(arr[i]/0x10)+55:(arr[i]/0x10)+48;
l=(arr[i]%0x10)>0x09?(arr[i]%0x10)+55:(arr[i]%0x10)+48;
putchar(k);
putchar(l);
}

</per>

I am Getting Proper out put for values which are below 90 ie 1A or 2F or 44 or 39 but when value becomes 90 or 91 or A1 i am not getting proper out put. I just cant locate my mistake. Please Tell me where i am going wrong.

Thank You.
Ajay

Parents
  • Hi Andy and also i am sorry that i did not mention my out put

    when my array contains 10 the out put is 31 and 30 ie 1 & 0 in char

    when my array contains 12 the out put is 31 and 32 ie 1 & 2 in char

    when my array contains 1A the out put is 31 and 41 ie 1 and A in char

    when my array contains 3B the out put is 33 and 42 ie 3 and B in char

    but when my input is 90 the out put is 29 and 30 ie ( and 0 in char which i was expecting 39 and 30 ie 9 and 0 in char.

    for all the values above 90 the out put is messed up.

Reply
  • Hi Andy and also i am sorry that i did not mention my out put

    when my array contains 10 the out put is 31 and 30 ie 1 & 0 in char

    when my array contains 12 the out put is 31 and 32 ie 1 & 2 in char

    when my array contains 1A the out put is 31 and 41 ie 1 and A in char

    when my array contains 3B the out put is 33 and 42 ie 3 and B in char

    but when my input is 90 the out put is 29 and 30 ie ( and 0 in char which i was expecting 39 and 30 ie 9 and 0 in char.

    for all the values above 90 the out put is messed up.

Children
No data