#include <stdio.h>
unsigned char convert(unsigned char ch)
{
if (ch >= '0' && ch <= '9')
{
return ch -'0';
}
if (ch >= 'a' && ch <= 'f')
{
return ch -'a' + 10;
}
if (ch >= 'A' && ch <= 'F')
{
return ch -'A' + 10;
}
return 0; // or some error handling
}
int main(void) {
unsigned char tag[8] = "50C59390";
unsigned char buffer[4] = {0};
int index,j = 0;
for(index = 0 ; index < 8; index = index + 2)
{
buffer[j] = convert(tag[index]) << 4;
buffer[j] += convert(tag[index+1]);
j++;
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp1bnNpZ25lZCBjaGFyIGNvbnZlcnQodW5zaWduZWQgY2hhciBjaCkKewogICAgaWYgKGNoID49ICcwJyAmJiBjaCA8PSAnOScpCiAgICB7CiAgICAgICAgcmV0dXJuIGNoIC0nMCc7CiAgICB9CgogICAgaWYgKGNoID49ICdhJyAmJiBjaCA8PSAnZicpCiAgICB7CiAgICAgICAgcmV0dXJuIGNoIC0nYScgKyAxMDsKICAgIH0KCiAgICBpZiAoY2ggPj0gJ0EnICYmIGNoIDw9ICdGJykKICAgIHsKICAgICAgICByZXR1cm4gY2ggLSdBJyArIDEwOwogICAgfQoKICAgIHJldHVybiAwOyAvLyBvciBzb21lIGVycm9yIGhhbmRsaW5nCn0KaW50IG1haW4odm9pZCkgewogICAgdW5zaWduZWQgY2hhciB0YWdbOF0gPSAiNTBDNTkzOTAiOwogICAgdW5zaWduZWQgY2hhciBidWZmZXJbNF0gPSB7MH07CiAgICBpbnQgaW5kZXgsaiA9IDA7ICAgIAogICAgZm9yKGluZGV4ID0gMCA7IGluZGV4IDwgODsgaW5kZXggPSBpbmRleCArIDIpCiAgICB7ICAgCiAgICAgICAgYnVmZmVyW2pdID0gY29udmVydCh0YWdbaW5kZXhdKSA8PCA0OwogICAgICAgIGJ1ZmZlcltqXSArPSBjb252ZXJ0KHRhZ1tpbmRleCsxXSk7CgogICAgICAgIHByaW50ZigiJTAyWCIsIGJ1ZmZlcltqXSk7CiAgICAgICAgaisrOwogICAgfSAgICAKCXJldHVybiAwOwp9Cg==