⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radix32.c

📁 早期freebsd实现
💻 C
字号:
/*  $Revision: 1.3 $****  Radix-32 strings divide a number into five-bit nibbles and use the**  alphabet 0..9a..v to represent 0..32.*/#include <stdio.h>#include <sys/types.h>#include <time.h>#include "configdata.h"#include "clibrary.h"static char	ALPHABET[] =    "0123456789abcdefghijklmnopqrstuv";/***  Turn a number into a Radix-32 string.  Assume the number fits into**  32 bits.*/voidRadix32(l, buff)    register unsigned long	l;    register char		*buff;{    register char		*p;    register int		i;    char			temp[10];    /* Simple sanity checks. */    if ((l &= 0xFFFFFFFFL) == 0) {	*buff++ = ALPHABET[0];	*buff = '\0';	return;    }    /* Format the string, in reverse. */    for (p = temp; l; l >>= 5)	*p++ = ALPHABET[(int)(l & 037)];    /* Reverse it. */    for (i = p - temp; --i >= 0; )	*buff++ = *--p;    *buff = '\0';}#if	0/***  Return a Radix-32 string as a number, or ~0 on error.*/unsigned longDecode32(p)    register char		*p;{    register unsigned long	l;    register char		*cp;    for (l = 0; *p; p++) {	if ((cp = strchr(ALPHABET, *p)) == NULL)	    return ~0;	l = (l << 6) + cp - ALPHABET;    }    return l;}#endif	/* 0 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -