二进制图形绘制

来源:互联网 发布:mac russian red 试色 编辑:程序博客网 时间:2024/06/13 03:45
#include <stdio.h>#include <string.h>#define X )*2+1#define _ )*2#define S ((((((((((((((((0 // 用于建立16位宽的图形int to_binary(int dec, int base, char *dstBuf ){    static char *str = "0123456789ABCDEF";    char *p;    char buf[64] = {'0'};    p = buf + sizeof(buf) - 1;    do     {         *--p = str[dec % base];     } while( dec /= base );    strcpy(dstBuf,p);    return 0;}int main(void){    unsigned short tmp;    char buf[16] = {'\0'}, buf1[16] = {'\0'};    char *p;    int len;    tmp = S _ _ _ _ _ X X X X X _ _ _ X X _;    printf("tmp = 0x%04x\n", tmp);    //tmp = 0x07c6    //2进制为:    //0000011111000110    //正好跟绘制的图形是一样的    //转2进制    to_binary(tmp, 2, buf);    printf("buf = %s\n", buf);    //前面空位填0     len = sizeof(buf1) - strlen(buf);    p = buf1 + len;    strncpy(p, buf, strlen(buf));    //打印    printf("buf1 = ");    for (p = buf1; p < buf1+16; p++)    {        //空用字符0代替        printf("%c", (*p?*p:'0'));    }    putchar(10);#undef X#undef _#undef S    return 0;}

0 0
原创粉丝点击