#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;
}
二进制图形绘制
最新推荐文章于 2022-09-15 20:23:45 发布