Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Converts base dec to base4. Returns as string */
- char* dec2base4(unsigned long num){
- /* Allocates memory for output string */
- char *out = malloc(MAX_NUM_SIZE);
- /* The charset of the output base */
- char dict[4] = {'0','1','2','3'};
- int i;
- /* Set ALL chars to "0" (or first in charset) so characters that we won't
- reach will not be skipped */
- memset(out, dict[0], MAX_NUM_SIZE);
- /* Let's not forget about NULL string termination */
- out[MAX_NUM_SIZE-1] = '\0';
- for(i = 0; num; i++, num=num>>2){
- /* The magic: Takes the last 2 bin digits of num and take the
- coresponding char from the charset */
- out[MAX_NUM_SIZE-2-i] = dict[num&3];
- }
- return out;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement