#include <stdio.h>
#include <string.h> //strlen
int main()
{
// para loop "for"
int i;
// area de entrada
char hex[] = "6f69";
// area de saida
char text[10];
// variaveis de conveniencia
char ch, high, low;
// trata todos os caracteres da area de entrada
for (i = 0; i < sizeHex; i += 2)
{
high = hex[i];
high -= 0x30;
if (high > 9) high -= 7;
high <<= 4;
low = hex[i+1];
low -= 0x30;
if (low > 9) low -= 7;
ch = high | low;
// transfere para area de saida
text[i/2] = ch;
}
text[i/2] = 0; // para delimitar string
printf("string hexadecimal: %s\n",text
); }
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4gLy9zdHJsZW4KCmludCBtYWluKCkKewogICAgLy8gcGFyYSBsb29wICJmb3IiCiAgICBpbnQgaTsKCiAgICAvLyBhcmVhIGRlIGVudHJhZGEKICAgIGNoYXIgaGV4W10gPSAiNmY2OSI7CiAgICBpbnQgc2l6ZUhleCA9IHN0cmxlbihoZXgpOwoKICAgIC8vIGFyZWEgZGUgc2FpZGEKICAgIGNoYXIgdGV4dFsxMF07CgogICAgLy8gdmFyaWF2ZWlzIGRlIGNvbnZlbmllbmNpYQogICAgY2hhciBjaCwgaGlnaCwgbG93OwoKICAgIC8vIHRyYXRhIHRvZG9zIG9zIGNhcmFjdGVyZXMgZGEgYXJlYSBkZSBlbnRyYWRhCiAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZUhleDsgaSArPSAyKQogICAgewogICAgICAgaGlnaCA9IGhleFtpXTsKICAgICAgIGhpZ2ggLT0gMHgzMDsKICAgICAgIGlmIChoaWdoID4gOSkgaGlnaCAtPSA3OwogICAgICAgaGlnaCA8PD0gNDsKICAgICAgIAogICAgICAgbG93ID0gaGV4W2krMV07CiAgICAgICBsb3cgLT0gMHgzMDsKICAgICAgIGlmIChsb3cgPiA5KSBsb3cgLT0gNzsKICAgICAgIAogICAgICAgY2ggPSBoaWdoIHwgbG93OwoKICAgICAgIC8vIHRyYW5zZmVyZSBwYXJhIGFyZWEgZGUgc2FpZGEgICAgICAgICAgICAKICAgICAgIHRleHRbaS8yXSA9IGNoOwogICAgfQoKICAgIHRleHRbaS8yXSA9IDA7IC8vIHBhcmEgZGVsaW1pdGFyIHN0cmluZwoKICAgIHByaW50Zigic3RyaW5nIGhleGFkZWNpbWFsOiAlc1xuIix0ZXh0KTsKfQ==