GB2312编码_gb2312是简体中文的编码格式

GB2312编码_gb2312是简体中文的编码格式在区码和位码的基础上,分别加上0XA0的偏移,便是GB2312编码;我们制作ASCII字库时,一般只做可以显示出来的字符字模,前面命令型的ASCII字符,我们不做字模,即从“空格开始”,ASCII表

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

GB2312编码_gb2312是简体中文的编码格式

在区码和位码的基础上,分别加上0XA0的偏移,便是GB2312编码;

 

 

 

 

 

GB2312编码_gb2312是简体中文的编码格式

 

 

GB2312编码_gb2312是简体中文的编码格式

 

 

 

 

我们制作ASCII字库时,一般只做可以显示出来的字符字模,前面命令型的ASCII字符,我们不做字模,即从“空格开始”,ASCII表对应0x20,所以当我们使用PCtoLcd的16X16选项制作字库时,(注意英文的实际占用的是8X16,要比汉字小半个字宽),所以,如果根据标准ASCII表制作字库时,可以根据字符的汉字相对于“空格”的偏移找到对应字库中的偏移地址,找到对应的字模;如找到”A”对应的字模:Address = (“A” – ” “) X (8 X 16 )/8,从这个偏移地址向后连续取16个字节,即是”A”的所有字模 。

 

GB2312是在区位码的地址基础上分别偏移0xA0,每个区有94个汉字;每个汉字占用的字节为(16X16)/8=32个字节;汉字字库的第一个字符也是“空格”,但这个是全角的和ASCII的不一样;如我们再写液晶驱动程序显示一个英文字母时,void (uchar x,uchar y,uchar en)   可以这样寻找偏移=’en’-‘ ‘  。

该空格的区位码是“0101”,所以任意一个汉字的偏移地址公式是,Address= ( (CodeH-0x30-1)*94+(CodeL-0x30-1) )*( 16*16 )/8;CodeH是GB2312的第一个字节,CodeL是GB2312的第二个字节,减一 是因为区位码是从第一区开始的,而字模数组表是从0开始的;  (以上的计算均是按16*16取模时计算的)

当我使用单片机编程工具写程序时,编译的时候,编译器会根据我们的选择(如MDK)会自动将字符串转换成机内码即GB2312形式进行存储,所以我们可以根据GB2312与区位码的关系进行寻找地址偏移。如我们在液晶驱动程序中写一个中文汉字显示程序,void(uchar x,uchar y,uint16 hz )   可以这样找区位码,CodeH=hz>>8;  CodeL=hz&0x00ff;  

注意英文和汉字的参数定义类型一个是8位uchar 型的,一个是u16位int16型的,因为GB2312在系统中是占用2个字节的,英文只占用一个字节

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168131.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BInder机制总结

    BInder机制总结BInder机制Linux内核的基础知识+进程隔离/虚拟地址空间操作系统当中为了保证进程间互不干扰,设计了进程隔离的技术,避免了一个进程去操作另一个进程的数据。进程隔离用到了虚拟地址空间,不

    2022年7月3日
    23
  • WOL(Wake On LAN – 局域网唤醒)外网唤醒 配置教程 远程开机「建议收藏」

    WOL(Wake On LAN – 局域网唤醒)外网唤醒 配置教程 远程开机「建议收藏」前言(也叫废话):虽然这个功能叫局域网唤醒,但配合路由器的端口映射功能,广域网唤醒也是可以的。只要有一台能上网的电脑或手机,就能把家中电脑打开,需要用电脑又不在家的时候很方便。一、开启WOL功能进BIOS进入BIOS后找一下有没有WakeOnLAN、网卡唤醒、WOL等字样的选项,找到后启用。二、注册花生壳账号传送门:https://console.oray.com/passport…

    2022年5月5日
    1.4K
  • FRP内网穿透_内网穿透 无需公网ip

    FRP内网穿透_内网穿透 无需公网ip一、关于内网穿透内网穿透,也即NAT穿透,进行NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与NAT设备的相对位置介绍内网穿透方法。二、为什么要使用内网穿透为了外网要访问内网,因为当不在同一局域网内,ip和地址互相ping不同的话,最简单的方式是使用向日葵与teamview,但是用起来并不方便。三、使用frp进行内网穿透(1)关于frp的介绍frp是一个高性能的反向代理应用,可以帮助您轻

    2022年9月12日
    0
  • python allure的介绍和使用(持续更新中)

    python allure的介绍和使用(持续更新中)1、allure的介绍2、allure的报告概览3、allure的安装4、使用allure2生成更加精美的测试报告pipinstallallure-pytest(安装这个辅助allure生成测试报告)pytest–alluredir=指定路径(指定allure报告数据生成路径)allureserve报告路径(生成HTML报告,这个会直接在线打开报告)allur…

    2022年7月26日
    40
  • pycharm21 激活码(最新序列号破解)

    pycharm21 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    107
  • JSONObject与JSONArray的使用

    JSONObject与JSONArray的使用

    2021年11月15日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号