西文系统外挂字库"画"汉字问题!~
c语言吧
全部回复
仅看楼主
level 1
#include "graphics.h"#
include "stdio.h"void huadian(char *hz,int x,int y,int ys)/*根据字模画点函数*/{int i,j,k;for (i=0;i<16;i++)for (j=0;j<2;j++) for (k=0;k<8;k++) if (hz[i*2+j]&(0x80>>k)) putpixel(x+k+j*8,y+i,ys);}int main(){int dm=VGA,gm=VGAHI;double i,j; /*我的问题在这里*/unsigned char zk[32],hzbuff[3]="情";FILE *fp;initgraph(&dm,&gm,"");i=hzbuff[0]-0xA0,j=hzbuff[1]-0xA0;/*内码与区位的相差是160,所以*/fp=fopen("hzk16","rb");if(fp==NULL) { printf("file not find!"); getch(); exit(0); }fseek(fp,(94*(i-1)+(j-1))*32,0);/*根据区位找到要显示汉字的地址*/fread(zk,32,1,fp);fclose(fp);huadian(zk,100,100,RED);getch();closegraph();}外挂的字库是UCDOS的HZK16本程序可以正常显示汉字,但是为什么必须是double才能正确显示
2005年10月19日 16点10分 1
level 1
都没人研究过这个小问题吗?
2005年10月20日 12点10分 2
level 9
不一定非要是DOUBLE吧。long类型应该就可以了。
2005年10月20日 13点10分 3
level 1
哥哥,不行呀,你试试罗,就DOUBLE可以,能解释下补码的存储和加减问题吗
2005年10月20日 13点10分 4
level 1
我曾经想过用位移解决符号问题,失败了
2005年10月20日 13点10分 5
level 1
sorrylong也可以!~对不起,对不起
2005年10月20日 13点10分 6
1