最近试验一种“压缩”通讯的方法,在蓝牙通讯中通过char字符来传输数字信息。这就离不开ASCII码(什么是ASCII码)这个核心的东西。
好奇驱使,同时为了进一步推进实验,探究一下ASCII码表中,前几位代表的是什么。
C语言代码
以C语言作为工具,可以很方便地进行这次的探究活动。以下为源码
/*
* @Author : Xav Pun
* @Date : 2021-02-02 14:49:11
* @Description : c test file
*/
#include "stdio.h"
int main() {
for (int i = 0; i < 34; ++i)
printf("[%2d]: _%c_\n", i, i);
getchar();
}
代码非常简单,for循环打印ASCII码从0到33的字符。为了方便查看实验结果,在打印出的字符左右加了下划线作为标记,同时在每行行首加上序号。
输出结果
这里首先附上ASCII码表帮助参照。
放上另一个版本的ASCII表作为对比参照。
以下是输出结果。
可以发现大都只有两个下划线,ASCII码表中的特殊字符都没有显现出来。可能的原因是字符集不包括这些特殊字符,更换字符集可能会有帮助。
还有一种打印1~31这些特殊字符的方法是按住Alt,在小键盘数字键输入对应的ASCII码,然后松手即可。比如:
Alt+1
Alt+33
!
Alt+34148
卍
只可惜这种必须用到大键盘的小数字区域。
在cmd终端显示的特殊字符则是这种形式:
收获
这次试验给了我启发:可以利用这些特殊字符,更加灵活的改变输出字符的显示效果(一种应用场景是字符构成的互动界面),比如ASCII=8
的退格键
,以及ASCII=13
的归位键