每個英文,是由一個字節的ASCII碼表示的。
每個中文,是由兩個字節的GBK碼表示的。
每個GBK碼由2個字節組成,第一個字節的數值區間為0X81~0XFE,第二個字節的數值區間為0X40~0XFF,不過,第二個區間中的0x7F和0xFF這兩個位置沒有對應的字符。
把所有的漢字都放到一座大樓里邊,這座大樓有126個房間,每個房間放190個漢字。就可以容納所有的中文漢字和符號。房間號是從0x81開始,一直到0xFE,一共126個房間。每個房間有192個座位,座位編號從0x40一直到0xFF,其中,0x7F和0xFF座位上沒有放置漢字和字符。(這就是對GBK碼最形象的解釋)
例如漢字“瑞”的GBK編碼為C8 F0,第一字節C8,位于0X81~0XFE之間,第二字節F0,位于0X40~0XFF之間。就是說,“瑞”這個字,位于大樓門牌號為0xC8房間當中的編號為0xF0的座位上。
除了以上內容,視頻中還介紹了從W25Q16芯片中讀取漢字字模的方法。
在W25Q16中,我們放的是16X16像素的字模,16X16像素的字模,每個漢字需要32個字節來表示。
我們放字模的時候,是從W25Q16的地址0開始放的,也就是說,W25Q16當中的第0~31個字節,就是GBK字庫中的第一個漢字,就是GBK碼為0x8140的漢字。這個漢字位于漢字大樓的門牌號為0x81房間中的編號為0x40座位。因為門牌號是從0x81開始的,實際上就是位于第1個房間。因為座位編號是從0x40開始的,實際上就是第一個房間當中的第一個字符。也就是W25Q16當中存儲的第一個字符。
這樣,就可以很容易的寫出取字模的函數了。
|