#include <stdio.h> /* printf */
#include <stdlib.h> /* strtol */
#include <string.h>
int main ()
{
//char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
//char szNumbers[] = "94 c7 94 d2 94 c6 94 9e";
unsigned char szNumbers[] = "94c794d294c69498";
//char szNumbers[] = "94c7";
//char szNumbers1[2];
// Get first 4 characters of szNumbers
/*char group1[5]; // note 6, not 5, there's one there for the null terminator
strncpy(group1, szNumbers, 4);
group1[4] = '\0'; // place the null terminator
printf("group1: %s\n", group1);
// Get next 4 characters of szNumbers
char group2[5]; // note 6, not 5, there's one there for the null terminator
strncpy(group2, szNumbers+4, 4);
group2[4] = '\0'; // place the null terminator
printf("group2: %s\n", group2);
// Get next 4 characters of szNumbers
char group3[5]; // note 6, not 5, there's one there for the null terminator
strncpy(group3, szNumbers+8, 4);
group3[4] = '\0'; // place the null terminator
printf("group3: %s\n", group3);
// Get next 4 characters of szNumbers
char group4[5]; // note 6, not 5, there's one there for the null terminator
strncpy(group4, szNumbers+12, 4);
group4[4] = '\0'; // place the null terminator
printf("group4: %s\n", group4);*/
char v1[5], v2[5], v3[5], v4[5];
strncpy(v2
, (char*)szNumbers
+4, 4); strncpy(v3
, (char*)szNumbers
+8, 4); strncpy(v4
, (char*)szNumbers
+12, 4);
// Place the null terminator for all groups
v1[4] = '\0';
v2[4] = '\0';
v3[4] = '\0';
v4[4] = '\0';
// Convert the hex value of each voltage to its base 10 equivalent
long int li1
= strtol (v1
, NULL
, 16); long int li2
= strtol (v2
, NULL
, 16); long int li3
= strtol (v3
, NULL
, 16); long int li4
= strtol (v4
, NULL
, 16); printf ("The decimal equivalents are: %ld %ld %ld %ld \n", li1
, li2
, li3
, li4
);
//char * pEnd;
/*long int li1 = strtol (szNumbers1, NULL, 16);
printf ("The decimal equivalents are: %ld\n", li1);*/
//printf ("pEnd: %s\n", pEnd);
//char szNumbers[] = "94 c7";
/*char * pEnd;
long int li1, li2;
li1 = strtol (szNumbers,&pEnd,10);
printf ("endptr: %s\n", pEnd);
li2 = strtol (pEnd, &pEnd , 10);
printf ("The decimal equivalents are: %ld %ld ", li1, li2);*/
/*char * pEnd;
long int li1, li2, li3, li4;
li1 = strtol (szNumbers,&pEnd,10);
printf ("pEnd: %s\n", pEnd);
li2 = strtol (pEnd,&pEnd, 16);
li3 = strtol (pEnd,&pEnd, 16);
li4 = strtol (pEnd,&pEnd, 16);
printf ("The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
return 0;*/
/*while(strlen(pEnd) > 0){
long int liN;
liN = strtol(pEnd,&pEnd,10);
printf("%ld ", liN);
}*/
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+ICAgICAgLyogcHJpbnRmICovCiNpbmNsdWRlIDxzdGRsaWIuaD4gICAgIC8qIHN0cnRvbCAqLwojaW5jbHVkZSA8c3RyaW5nLmg+CgppbnQgbWFpbiAoKQp7CiAgLy9jaGFyIHN6TnVtYmVyc1tdID0gIjIwMDEgNjBjMGMwIC0xMTAxMTEwMTAwMTEwMTAwMTAwMDAwIDB4NmZmZmZmIjsKICAvL2NoYXIgc3pOdW1iZXJzW10gPSAiOTQgYzcgOTQgZDIgOTQgYzYgOTQgOWUiOwogIHVuc2lnbmVkIGNoYXIgc3pOdW1iZXJzW10gPSAiOTRjNzk0ZDI5NGM2OTQ5OCI7CiAgLy9jaGFyIHN6TnVtYmVyc1tdID0gIjk0YzciOwogIC8vY2hhciBzek51bWJlcnMxWzJdOwoKICAvLyBHZXQgZmlyc3QgNCBjaGFyYWN0ZXJzIG9mIHN6TnVtYmVycwogIC8qY2hhciBncm91cDFbNV07IC8vIG5vdGUgNiwgbm90IDUsIHRoZXJlJ3Mgb25lIHRoZXJlIGZvciB0aGUgbnVsbCB0ZXJtaW5hdG9yCiAgc3RybmNweShncm91cDEsIHN6TnVtYmVycywgNCk7CiAgZ3JvdXAxWzRdID0gJ1wwJzsgLy8gcGxhY2UgdGhlIG51bGwgdGVybWluYXRvcgogIHByaW50ZigiZ3JvdXAxOiAlc1xuIiwgZ3JvdXAxKTsKICAKICAvLyBHZXQgbmV4dCA0IGNoYXJhY3RlcnMgb2Ygc3pOdW1iZXJzCiAgY2hhciBncm91cDJbNV07IC8vIG5vdGUgNiwgbm90IDUsIHRoZXJlJ3Mgb25lIHRoZXJlIGZvciB0aGUgbnVsbCB0ZXJtaW5hdG9yCiAgc3RybmNweShncm91cDIsIHN6TnVtYmVycys0LCA0KTsKICBncm91cDJbNF0gPSAnXDAnOyAvLyBwbGFjZSB0aGUgbnVsbCB0ZXJtaW5hdG9yCiAgcHJpbnRmKCJncm91cDI6ICVzXG4iLCBncm91cDIpOwogIAogIC8vIEdldCBuZXh0IDQgY2hhcmFjdGVycyBvZiBzek51bWJlcnMKICBjaGFyIGdyb3VwM1s1XTsgLy8gbm90ZSA2LCBub3QgNSwgdGhlcmUncyBvbmUgdGhlcmUgZm9yIHRoZSBudWxsIHRlcm1pbmF0b3IKICBzdHJuY3B5KGdyb3VwMywgc3pOdW1iZXJzKzgsIDQpOwogIGdyb3VwM1s0XSA9ICdcMCc7IC8vIHBsYWNlIHRoZSBudWxsIHRlcm1pbmF0b3IKICBwcmludGYoImdyb3VwMzogJXNcbiIsIGdyb3VwMyk7CiAgCiAgLy8gR2V0IG5leHQgNCBjaGFyYWN0ZXJzIG9mIHN6TnVtYmVycwogIGNoYXIgZ3JvdXA0WzVdOyAvLyBub3RlIDYsIG5vdCA1LCB0aGVyZSdzIG9uZSB0aGVyZSBmb3IgdGhlIG51bGwgdGVybWluYXRvcgogIHN0cm5jcHkoZ3JvdXA0LCBzek51bWJlcnMrMTIsIDQpOwogIGdyb3VwNFs0XSA9ICdcMCc7IC8vIHBsYWNlIHRoZSBudWxsIHRlcm1pbmF0b3IKICBwcmludGYoImdyb3VwNDogJXNcbiIsIGdyb3VwNCk7Ki8KICAKICBjaGFyIHYxWzVdLCB2Mls1XSwgdjNbNV0sIHY0WzVdOwogIAogIHN0cm5jcHkodjEsIChjaGFyKilzek51bWJlcnMsIDQpOwogIHN0cm5jcHkodjIsIChjaGFyKilzek51bWJlcnMrNCwgNCk7CiAgc3RybmNweSh2MywgKGNoYXIqKXN6TnVtYmVycys4LCA0KTsKICBzdHJuY3B5KHY0LCAoY2hhciopc3pOdW1iZXJzKzEyLCA0KTsKICAKICAvLyBQbGFjZSB0aGUgbnVsbCB0ZXJtaW5hdG9yIGZvciBhbGwgZ3JvdXBzCiAgdjFbNF0gPSAnXDAnOwogIHYyWzRdID0gJ1wwJzsgCiAgdjNbNF0gPSAnXDAnOyAKICB2NFs0XSA9ICdcMCc7CiAgCiAgLy8gQ29udmVydCB0aGUgaGV4IHZhbHVlIG9mIGVhY2ggdm9sdGFnZSB0byBpdHMgYmFzZSAxMCBlcXVpdmFsZW50CiAgbG9uZyBpbnQgbGkxID0gc3RydG9sICh2MSwgTlVMTCwgMTYpOwogIGxvbmcgaW50IGxpMiA9IHN0cnRvbCAodjIsIE5VTEwsIDE2KTsKICBsb25nIGludCBsaTMgPSBzdHJ0b2wgKHYzLCBOVUxMLCAxNik7CiAgbG9uZyBpbnQgbGk0ID0gc3RydG9sICh2NCwgTlVMTCwgMTYpOwogIHByaW50ZiAoIlRoZSBkZWNpbWFsIGVxdWl2YWxlbnRzIGFyZTogJWxkICVsZCAlbGQgJWxkIFxuIiwgbGkxLCBsaTIsIGxpMywgbGk0KTsKICAKICAvL2NoYXIgKiBwRW5kOwogIC8qbG9uZyBpbnQgbGkxID0gc3RydG9sIChzek51bWJlcnMxLCBOVUxMLCAxNik7CiAgcHJpbnRmICgiVGhlIGRlY2ltYWwgZXF1aXZhbGVudHMgYXJlOiAlbGRcbiIsIGxpMSk7Ki8KICAvL3ByaW50ZiAoInBFbmQ6ICVzXG4iLCBwRW5kKTsKIAogIC8vY2hhciBzek51bWJlcnNbXSA9ICI5NCBjNyI7CiAgLypjaGFyICogcEVuZDsKICBsb25nIGludCBsaTEsIGxpMjsKICBsaTEgPSBzdHJ0b2wgKHN6TnVtYmVycywmcEVuZCwxMCk7CiAgcHJpbnRmICgiZW5kcHRyOiAlc1xuIiwgcEVuZCk7CiAgCiAgbGkyID0gc3RydG9sIChwRW5kLCAmcEVuZCAsIDEwKTsgCiAgcHJpbnRmICgiVGhlIGRlY2ltYWwgZXF1aXZhbGVudHMgYXJlOiAlbGQgJWxkICIsIGxpMSwgbGkyKTsqLwogIAogIC8qY2hhciAqIHBFbmQ7CiAgbG9uZyBpbnQgbGkxLCBsaTIsIGxpMywgbGk0OwogIGxpMSA9IHN0cnRvbCAoc3pOdW1iZXJzLCZwRW5kLDEwKTsKICBwcmludGYgKCJwRW5kOiAlc1xuIiwgcEVuZCk7CiAgbGkyID0gc3RydG9sIChwRW5kLCZwRW5kLCAxNik7CiAgbGkzID0gc3RydG9sIChwRW5kLCZwRW5kLCAxNik7CiAgbGk0ID0gc3RydG9sIChwRW5kLCZwRW5kLCAxNik7CiAgcHJpbnRmICgiVGhlIGRlY2ltYWwgZXF1aXZhbGVudHMgYXJlOiAlbGQsICVsZCwgJWxkIGFuZCAlbGQuXG4iLCBsaTEsIGxpMiwgbGkzLCBsaTQpOwogIHJldHVybiAwOyovCgogIAogIC8qd2hpbGUoc3RybGVuKHBFbmQpID4gMCl7CiAgCWxvbmcgaW50IGxpTjsKICAJbGlOID0gc3RydG9sKHBFbmQsJnBFbmQsMTApOwogIAlwcmludGYoIiVsZCAiLCBsaU4pOwogIH0qLwogIAogIHJldHVybiAwOwp9Cg==