sprintb.c

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 39 行

C
39
字号
/* sprintb.c - sprintf a %b string */#include "../h/mh.h"#include <stdio.h>char   *sprintb (buffer, v, bits)register char  *buffer,               *bits;register unsigned   v;{    register int    i,                    j;    register char   c,                   *bp;    (void) sprintf (buffer, bits && *bits == 010 ? "0%o" : "0x%x", v);    bp = buffer + strlen (buffer);    if (bits && *++bits) {	j = 0;	*bp++ = '<';	while (i = *bits++)	    if (v & (1 << (i - 1))) {		if (j++)		    *bp++ = ',';		for (; (c = *bits) > 32; bits++)		    *bp++ = c;	    }	    else		for (; *bits > 32; bits++)		    continue;	*bp++ = '>';	*bp = NULL;    }    return buffer;}

⌨️ 快捷键说明

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