能否仅通过二进制数获取ASCII字体点阵数组并生成6*8单色位图?
你没办法直接通过字符A的ASCII编码二进制值0b01000001生成6*8双色位图,必须提前准备对应的字符字模库(也就是你提到的字符集列表)才能确定位图形态。
ASCII编码的8位二进制只是字符的标识编号,和字符显示的像素排布没有任何对应关系。0b01000001只是系统用来识别当前字符为A的编号,完全不包含A显示形态的像素信息。
用C语言实现该功能的常规逻辑如下:
- 提前预制你需要用到的所有字符的6*8字模,每个字符对应8组6位二进制值,分别对应位图8行、每行6个像素的亮灭状态(1代表点亮、0代表熄灭),所有字模按固定顺序存在常量数组中即可。
- 实际调用时,拿到输入字符后计算其在字模数组中的偏移量,取出对应位置的8组二进制值,就是你需要的仅含0和1的6*8位图数据。
以下是常见的字符A的6*8字模参考:
const unsigned char font_A[8] = { 0b001100, 0b010010, 0b100001, 0b111111, 0b100001, 0b100001, 0b100001, 0b000000 };
内容的提问来源于stack exchange,提问作者euraad
相关产品推荐
相关产品推荐

