Userland/SampleCodeModule/libc.c
uint64_t hex2int(char *hex, int *ok) {
    uint64_t val = 0;
    while (*hex) {
        uint8_t byte = *hex++;
        
        if (!(byte >= '0' && byte <= '9') && !(byte >= 'a' && byte <= 'f') && !(byte >= 'A' && byte <= 'F')) {
          *ok = 0;
          return 0;
        }
        if (byte <= '9') byte = byte - '0';
        else if (byte >= 'a') byte = byte - 'a' + 10;
        else if (byte >= 'A' && byte <='F') byte = byte - 'A' + 10;    
        val = (val << 4) | (byte & 0xF);
    }
    return val;
}
/**
 * hex2int
 * take a hex string and convert it to a 32bit number (max 8 hex digits)
 */
hex2int
take a hex string and convert it to a 32bit number (max 8 hex digits)
hex2int take a hex string and convert it to a 32bit number ( max 8 hex digits )
uint64_t hex2int(char *hex, int *ok) {
    uint64_t val = 0;
    while (*hex) {
        uint8_t byte = *hex++;
        if (!(byte >= '0' && byte <= '9') && !(byte >= 'a' && byte <= 'f') && !(byte >= 'A' && byte <= 'F')) {
          *ok = 0;
          return 0;
        }
        if (byte <= '9') byte = byte - '0';
        else if (byte >= 'a') byte = byte - 'a' + 10;
        else if (byte >= 'A' && byte <='F') byte = byte - 'A' + 10;    
        val = (val << 4) | (byte & 0xF);
    }
    return val;
}
uint64_t hex2int ( char * hex , int * ok ) { uint64_t val = 0 ; while ( * hex ) { uint8_t byte = * hex ++ ; if ( ! ( byte >= ' ' && byte <= ' ' ) && ! ( byte >= ' ' && byte <= ' ' ) && ! ( byte >= ' ' && byte <= ' ' ) ) { * ok = 0 ; return 0 ; } if ( byte <= ' ' ) byte = byte - ' ' ; else if ( byte >= ' ' ) byte = byte - ' ' + 10 ; else if ( byte >= ' ' && byte <= ' ' ) byte = byte - ' ' + 10 ; val = ( val << 4 ) | ( byte & 0xF ) ; } return val ; }
hex2int
 take a hex string and convert it to a 32bit number (max 8 hex digits)
hex2int take a hex string and convert it to a 32bit number ( max 8 hex digits )