ASCII是计算机中最基本的“协议”。
无论什么编程语言,其所使用关键字,运算符,都依赖于ASCII编码的字符。
为了与ASCII兼容,UTF-8的使用远远多于UTF-16。
ASCII是7位的,所以共有128个码位,
其中前32个是控制字符,也就是显示不出来的。
后面96个中,最后一个也是控制字符,而第一个空格,不属于控制符号,但属于不可显示的符号。
这96个中,前32个是数字为主加一些符号;中间32个是大写字母为主加一些符号,后面32个是小写字母为主加一些符号。
在控制台,输入控制符号是用Ctrl加字母,其实就是ASCII偏移64。
所有我决定这样打印:分成4行8列,每格4个字符。其中控制字符及空格由于显示不出,改用Unicode中的Control Picture区块
#include
#define CTL_PIC_BASE 0x2400
int main()
{
int i, j;
printf("");
printf("
");printf("
printf("border='1' ");
printf("cellspacing='0' ");
printf("style='font-family:courier;'");
printf(">");
for (i = 0; i != 4; ++i)
{
printf("
");for (j = 0; j != 8; ++j)
{
printf("
");if (i == 0 && j == 0) printf("%d;%d;", CTL_PIC_BASE + i * 8 + j, CTL_PIC_BASE + 0x20);
else printf("%d;%d;", CTL_PIC_BASE + i * 8 + j, 0x20 + i * 8 + j);
printf("
");
if (i == 3 && j == 7) printf("%d;%d;", 0x40 + i * 8 + j, CTL_PIC_BASE + 0x20 + 1);
else printf("%d;%d;", 0x40 + i * 8 + j, 0x60 + i * 8 + j);
printf("
");}
printf("
");}
printf("
");printf("");
printf("");
return 0;
}
编译运行将输出重定向到后缀为html的文件即可,效果如下:
␀␠
@`
␁!
Aa
␂"
Bb
␃#
Cc
␄$
Dd
␅%
Ee
␆&
Ff
␇'
Gg
␈(
Hh
␉)
Ii
␊*
Jj
␋+
Kk
␌,
Ll
␍-
Mm
␎.
Nn
␏/
Oo
␐0
Pp
␑1
␒2
Rr
␓3
Ss
␔4
Tt
␕5
Uu
␖6
Vv
␗7
Ww
␘8
Xx
␙9
Yy
␚:
Zz
␛;
[{
␜<
\|
␝=
]}
␞>
^~
␟? _␡