#include <u.h>#include <libc.h> #define between(x,min,max) (((min-1-x) & (x-max-1))>>8) intenc16chr(int o){ int c; c = between(o, 0, 9) & ('0'+o); c |= between(o, 10, 15) & ('A'+(o-10)); return c;} intdec16chr(int c){ int o; o = between(c, '0', '9') & (1+(c-'0')); o |= between(c, 'A', 'F') & (1+10+(c-'A')); o |= between(c, 'a', 'f') & (1+10+(c-'a')); return o-1;}
#include <u.h>
#include <libc.h>
#define between(x,min,max) (((min-1-x) & (x-max-1))>>8)
int
enc16chr(int o)
{
int c;
c = between(o, 0, 9) & ('0'+o);
c |= between(o, 10, 15) & ('A'+(o-10));
return c;
}
int
dec16chr(int c)
{
int o;
o = between(c, '0', '9') & (1+(c-'0'));
o |= between(c, 'A', 'F') & (1+10+(c-'A'));
o |= between(c, 'a', 'f') & (1+10+(c-'a'));
return o-1;
}