// "line by line" datavoidshow_8x16char(unsignedchar*arr,int len){
if(len <16){
return;}for(int i =0; i <16; i++){
show_binary(arr[i]);printf("\r\n");}}
1.2 逐行式HZK8x16向列行式转换
// "line by line" scan to "column by line"voidtransfer_8x16character(unsignedchar*arr,unsignedchar*retArr){
int j =0;for(int temp =0x80; temp; temp >>=1){
retArr[j]=0;// Data must be clearedfor(int i =0; i <8; i++){
retArr[j]|=((arr[i]& temp)?1:0)<< i;}
j++;}for(int temp =0x80; temp; temp >>=1){
retArr[j]=0;for(int i =8; i <16; i++){
retArr[j]|=((arr[i]& temp)?1:0)<<(i -8);}
j++;}}
1.3 输出列行式点阵数据
voidprint_buf(unsignedchar*buf,int len){
int i =0;for(i =0; i < len; i++){
printf("0x%.2x,", buf[i]);if((i+1)%16==0){
printf("\r\n");}}if(i %16!=0){
printf("\r\n");}}
1.4 测试用例
1.4.1 生成 0 ~ 9 列行式数据
代码
intmain(int argc,char*argv[]){
unsignedchar buf1[16]={
0};unsignedchar buf2[16]={
0};
FILE *pf =fopen(".\\ASC8_16","r");assert(pf !=NULL);for(int j ='0'; j <='9'; j++){
long offset = j *16;fseek(pf, offset,0);fread(buf1,1,16, pf);printf(">>> raw data is: \r\n");print_buf(buf1,sizeof(buf1)/sizeof(buf1[0]));show_8x16char(buf1,sizeof(buf1)/sizeof(buf1[0]));transfer_8x16character(buf1, buf2);printf("...translated data is: \r\n");print_buf(buf2,sizeof(buf2)/sizeof(buf2[0]));}fclose(pf);return0;}
结果
>>> raw data is:0x00,0x00,0x38,0x6c,0xc6,0xc6,0xd6,0xd6,0xc6,0xc6,0x6c,0x38,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` O O O ` ` `
` O O ` O O ` `
O O ` ` ` O O `
O O ` ` ` O O `
O O ` O ` O O `
O O ` O ` O O `
O O ` ` ` O O `
O O ` ` ` O O `
` O O ` O O ` `
` ` O O O ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0xf0,0xf8,0x0c,0xc4,0x0c,0xf8,0xf0,0x00,0x03,0x07,0x0c,0x08,0x0c,0x07,0x03,0x00,>>> raw data is:0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` O O ` ` `
` ` O O O ` ` `
` O O O O ` ` `
` ` ` O O ` ` `
` ` ` O O ` ` `
` ` ` O O ` ` `
` ` ` O O ` ` `
` ` ` O O ` ` `
` ` ` O O ` ` `
` O O O O O O `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0x00,0x10,0x18,0xfc,0xfc,0x00,0x00,0x00,0x00,0x08,0x08,0x0f,0x0f,0x08,0x08,0x00,>>> raw data is:0x00,0x00,0x7c,0xc6,0x06,0x0c,0x18,0x30,0x60,0xc0,0xc6,0xfe,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` O O O O O ` `
O O ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` O O ` `
` ` ` O O ` ` `
` ` O O ` ` ` `
` O O ` ` ` ` `
O O ` ` ` ` ` `
O O ` ` ` O O `
O O O O O O O `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0x08,0x0c,0x84,0xc4,0x64,0x3c,0x18,0x00,0x0e,0x0f,0x09,0x08,0x08,0x0c,0x0c,0x00,>>> raw data is:0x00,0x00,0x7c,0xc6,0x06,0x06,0x3c,0x06,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` O O O O O ` `
O O ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` ` O O `
` ` O O O O ` `
` ` ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` ` O O `
O O ` ` ` O O `
` O O O O O ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0x08,0x0c,0x44,0x44,0x44,0xfc,0xb8,0x00,0x04,0x0c,0x08,0x08,0x08,0x0f,0x07,0x00,>>> raw data is:0x00,0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` O O ` `
` ` ` O O O ` `
` ` O O O O ` `
` O O ` O O ` `
O O ` ` O O ` `
O O O O O O O `
` ` ` ` O O ` `
` ` ` ` O O ` `
` ` ` ` O O ` `
` ` ` O O O O `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0xc0,0xe0,0xb0,0x98,0xfc,0xfc,0x80,0x00,0x00,0x00,0x00,0x08,0x0f,0x0f,0x08,0x00,>>> raw data is:0x00,0x00,0xfe,0xc0,0xc0,0xc0,0xfc,0x06,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
O O O O O O O `
O O ` ` ` ` ` `
O O ` ` ` ` ` `
O O ` ` ` ` ` `
O O O O O O ` `
` ` ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` ` O O `
O O ` ` ` O O `
` O O O O O ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0x7c,0x7c,0x44,0x44,0x44,0xc4,0x84,0x00,0x04,0x0c,0x08,0x08,0x08,0x0f,0x07,0x00,>>> raw data is:0x00,0x00,0x38,0x60,0xc0,0xc0,0xfc,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` O O O ` ` `
` O O ` ` ` ` `
O O ` ` ` ` ` `
O O ` ` ` ` ` `
O O O O O O ` `
O O ` ` ` O O `
O O ` ` ` O O `
O O ` ` ` O O `
O O ` ` ` O O `
` O O O O O ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0xf0,0xf8,0x4c,0x44,0x44,0xc0,0x80,0x00,0x07,0x0f,0x08,0x08,0x08,0x0f,0x07,0x00,>>> raw data is:0x00,0x00,0xfe,0xc6,0x06,0x06,0x0c,0x18,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
O O O O O O O `
O O ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` O O ` `
` ` ` O O ` ` `
` ` O O ` ` ` `
` ` O O ` ` ` `
` ` O O ` ` ` `
` ` O O ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0x0c,0x0c,0x04,0x84,0xc4,0x7c,0x3c,0x00,0x00,0x00,0x0f,0x0f,0x00,0x00,0x00,0x00,>>> raw data is:0x00,0x00,0x7c,0xc6,0xc6,0xc6,0x7c,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` O O O O O ` `
O O ` ` ` O O `
O O ` ` ` O O `
O O ` ` ` O O `
` O O O O O ` `
O O ` ` ` O O `
O O ` ` ` O O `
O O ` ` ` O O `
O O ` ` ` O O `
` O O O O O ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0xb8,0xfc,0x44,0x44,0x44,0xfc,0xb8,0x00,0x07,0x0f,0x08,0x08,0x08,0x0f,0x07,0x00,>>> raw data is:0x00,0x00,0x7c,0xc6,0xc6,0xc6,0x7e,0x06,0x06,0x06,0x0c,0x78,0x00,0x00,0x00,0x00,
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` O O O O O ` `
O O ` ` ` O O `
O O ` ` ` O O `
O O ` ` ` O O `
` O O O O O O `
` ` ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` ` O O `
` ` ` ` O O ` `
` O O O O ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
...translated data is:0x38,0x7c,0x44,0x44,0x44,0xfc,0xf8