分类:
2009-03-09 23:00:12
问题来自CSDN,下面是这两个问题
第一个问题:
我们知道,在计算机里有一个ASCII的字码标准。我想问,在我们做程序设计的时候,为什么把一个编码,例如30H,做输出, 计算机就可以显示出阿拉伯数字“0”。 是不是有一个程序在做中间处理,让计算机可以做出显示? 另外,ASCII码是存放在哪里的? 是存放在BIOS里的吗? 当计算机一启动就加载到第一个1MB(即实模式下的)内存区?
第二个问题:
关于UNICODE字符编码的问题。在一个多任务操作系统下,比如Windows下,我们在做一个程序的字符输出的时候,比如输出“中国”这两个字符,在二进制的编码为“D6D0”、“B9FA”;为什么计算机一看到这样的编码,就“知道”输出“中国”这样的字符? 这说明,在这中间肯定有一个程序在做处理。 请问,这样的程序(或者是程序的一部分)是什么?它是怎么处理的? 另外,UNICODE的编码存放在哪里?
cuichaox2009-03-12 08:49:25
对不同的平台(windows, dos, unix,dos),下处理方式是不同的。 在同一个平台的不同模式下(终端,图形界面)处理方式也是不同的。 在同一个平台的相同模式下,如linux平台的X window下,不同的应用程序,也可能调用不同的第三方库(xlib,qt,gtk)来使用选定的字体绘制字符,甚至可能自己读取字体自己绘制(许多游戏为了特殊字效,常这样做)。 不管那种环境下, 都是要根据字体库来绘制,字体库中保存:编码和字型的对应关系。字体库存在形式,可能在标准字体文件中,也可能在显卡中(在没有操作系统的机器上,VGA中断服务,或者Bois中断服务直接提供字符显示功能),也可能在用户应用程序自己定义的某种格式的文件中。
chinaunix网友2009-03-11 11:35:52
刚刚发现的一个好玩的网站,拿出来分享http://my.diannaobbg.cn/invite.php?u=1&c=be7fce657cf06905