I didn't see any example function for doing 3 in 4 out uuencoding but it seem simple enough, does it look right?
unsigned char a = 1;
unsigned char b = 2;
unsigned char c = 4;
unsigned char d = 0;
unsigned char e = 0;
unsigned char f = 0;
unsigned char g = 0;
d = (a & 0xfc)>>2;
e = ( (a & 0x3)<<4 | (b & 0xf0)>>4 ) ;
f = ( (b & 0x0f) <<2) | (c & 0xc0)>>6;
g = (c & 0x3f);
printf("d,e,f,g: %i,%i,%i,%i", d,e,f,g);
d,e,f,g: 0,16,8,4