当前位置:3016.com-金沙城中心官网 > 编程 > ASCII码专题

ASCII码专题

文章作者:编程 上传时间:2019-10-22

ASCII(American Standard Code for Information Interchange,美利坚合众国音信交流标准代码)是风度翩翩套基于拉丁字母的字符编码,共收音和录音了 128 个字符,用贰个字节就足以储存,它同样国际规范 ISO/IEC 646。ASCII 规范于 一九六九 年先是次揭露,最终一遍立异是在 一九九零 年,它富含了 35个调节字符(具有有些特殊意义可是力不胜任体现的字符)和 95 个可呈现字符。

ASCII码表

二进制 十进制 十六进制 缩写/字符 解释
00000000 0 00 NUL (NULL) 空字符
00000001 1 01 SOH (Start Of Headling) 标题开始
00000010 2 02 STX (Start Of Text) 正文开始
00000011 3 03 ETX (End Of Text) 正文结束
00000100 4 04 EOT (End Of Transmission) 传输结束
00000101 5 05 ENQ (Enquiry) 请求
00000110 6 06 ACK (Acknowledge) 回应/响应/收到通知
00000111 7 07 BEL (Bell) 响铃
00001000 8 08 BS (Backspace) 退格
00001001 9 09 HT (Horizontal Tab) 水平制表符
00001010 10 0A LF/NL(Line Feed/New Line) 换行键
00001011 11 0B VT (Vertical Tab) 垂直制表符
00001100 12 0C FF/NP (Form Feed/New Page) 换页键
00001101 13 0D CR (Carriage Return) 回车键
00001110 14 0E SO (Shift Out) 不用切换
00001111 15 0F SI (Shift In) 启用切换
00010000 16 10 DLE (Data Link Escape) 数据链路转义
00010001 17 11 DC1/XON (Device Control 1/Transmission On) 设备控制1/传输开始
00010010 18 12 DC2 (Device Control 2) 设备控制2
00010011 19 13 DC3/XOFF (Device Control 3/Transmission Off) 设备控制3/传输中断
00010100 20 14 DC4 (Device Control 4) 设备控制4
00010101 21 15 NAK (Negative Acknowledge) 无响应/非正常响应/拒绝接收
00010110 22 16 SYN (Synchronous Idle) 同步空闲
00010111 23 17 ETB (End of Transmission Block) 传输块结束/块传输终止
00011000 24 18 CAN (Cancel) 取消
00011001 25 19 EM (End of Medium) 已到介质末端/介质存储已满/介质中断
00011010 26 1A SUB (Substitute) 替补/替换
00011011 27 1B ESC (Escape) 逃离/取消
00011100 28 1C FS (File Separator) 文件分割符
00011101 29 1D GS (Group Separator) 组分隔符/分组符
00011110 30 1E RS (Record Separator) 记录分离符
00011111 31 1F US (Unit Separator) 单元分隔符
00100000 32 20 (Space) 空格
00100001 33 21 !  
00100010 34 22 "  
00100011 35 23 #  
00100100 36 24 $  
00100101 37 25 %  
00100110 38 26 &  
00100111 39 27 '  
00101000 40 28 (  
00101001 41 29 )  
00101010 42 2A *  
00101011 43 2B +  
00101100 44 2C ,  
00101101 45 2D -  
00101110 46 2E .  
00101111 47 2F /  
00110000 48 30 0  
00110001 49 31 1  
00110010 50 32 2  
00110011 51 33 3  
00110100 52 34 4  
00110101 53 35 5  
00110110 54 36 6  
00110111 55 37 7  
00111000 56 38 8  
00111001 57 39 9  
00111010 58 3A :  
00111011 59 3B ;  
00111100 60 3C <  
00111101 61 3D =  
00111110 62 3E >  
00111111 63 3F ?  
01000000 64 40 @  
01000001 65 41 A  
01000010 66 42 B  
01000011 67 43 C  
01000100 68 44 D  
01000101 69 45 E  
01000110 70 46 F  
01000111 71 47 G  
01001000 72 48 H  
01001001 73 49 I  
01001010 74 4A J  
01001011 75 4B K  
01001100 76 4C L  
01001101 77 4D M  
01001110 78 4E N  
01001111 79 4F O  
01010000 80 50 P  
01010001 81 51 Q  
01010010 82 52 R  
01010011 83 53 S  
01010100 84 54 T  
01010101 85 55 U  
01010110 86 56 V  
01010111 87 57 W  
01011000 88 58 X  
01011001 89 59 Y  
01011010 90 5A Z  
01011011 91 5B [  
01011100 92 5C  
01011101 93 5D ]  
01011110 94 5E ^  
01011111 95 5F _  
01100000 96 60 `  
01100001 97 61 a  
01100010 98 62 b  
01100011 99 63 c  
01100100 100 64 d  
01100101 101 65 e  
01100110 102 66 f  
01100111 103 67 g  
01101000 104 68 h  
01101001 105 69 i  
01101010 106 6A j  
01101011 107 6B k  
01101100 108 6C l  
01101101 109 6D m  
01101110 110 6E n  
01101111 111 6F o  
01110000 112 70 p  
01110001 113 71 q  
01110010 114 72 r  
01110011 115 73 s  
01110100 116 74 t  
01110101 117 75 u  
01110110 118 76 v  
01110111 119 77 w  
01111000 120 78 x  
01111001 121 79 y  
01111010 122 7A z  
01111011 123 7B {  
01111100 124 7C |  
01111101 125 7D }  
01111110 126 7E ~  
01111111 127 7F DEL (Delete) 删除

对调控字符的解释

ASCII 编码中第 0~31 个字符(最初的 32 个字符)以至第 127个字符(最终贰个字符)都是不可以预知的(无法显示),可是它们都富有部分杰出意义,所以称为调整字符( Control Character)大概功用码(Function Code)。

那 三十七个调控字符大都与通讯、数据存款和储蓄以致老式道具有关,某个在今世处理器中的含义已经济体改成了。

稍加调控符要求自然的Computer基础本领精晓,初读书人能够跳过,选拔轻松的精通就可以。

 

上面列出了一些调整字符的切实作用:

  • #### NUL (0)

    NULL,空字符。空字符开首本意能够看作为 NOP(汉语意为空操作,就是啥都不做的情趣),此职责能够忽视二个字符。

    故此有其生气勃勃空字符,主借使用来Computer刚开始阶段的笔录消息的纸带,此处留个 NUL 字符,意思是先占那么些地方,以待后用,举例您何时想起来了,在这里个岗位在放叁个其余吗字符之类的。

    新兴吗,NUL 被用于C语言中,表示字符串的终止,当贰个字符串中间出现NUL 时,就代表那一个是二个字符串的尾声了。那样就便于依照本人供给去定义字符串,多少长度都行,当然要是你内寄存得下,然后最后加叁个,即空字符,意思是当下字符串到此截止。

  • #### SOH (1)

    Start Of Heading,标题起始。若是新闻沟通交流着重以命令和音信的款式来讲,SOH 即可用于标识种种音讯的起来。

    一九六四年,最起先 ASCII 规范中,把此字符定义为 Start of Message,后来又改为今天的 Start Of Heading。

    当今,那么些 SOH 常见于主从(master-slave)形式的 RAV4S232 的通讯中,二个主设备,以 SOH 开首,和从设备举办通讯。那样有扶助从设备在多少传输出现谬误的时候,在下贰回通信以前,去贯彻重新联合(resynchronize)。若无八个显著的近乎于 SOH 那样的符号,去标识种种命令的胚胎或领头的话,那么重新联合,就很难落到实处了。

  • #### STX (2) 和 ETX (3)

    STX 表示 Start Of Text,意思是“文本开端”;ETX 表示 End Of Text,意思是“文本截至”。

    因此某种通信左券去传输的多个数量(包),称为生气勃勃帧来讲,常会含有叁个帧头,包罗了寻址音信,即你是要发放什么人,要发送到指标地是什么地方,其后跟着真正要发送的数目内容。

    而 STX,就用于标志那个数量内容的开首。接下来是要传输的数据,最终是 ETX,注解数据的收尾。

    而中级具体传输的数额内容,ASCII 并从未去定义,它和您所用的传输公约有关。

    帧头

  • #### BEL (7)

    BELl,响铃。在 ASCII 编码中,BEL 是个相比有趣的事物。BEL 用贰个能够听得见的声响来诱惑大家的注目,不仅能够用于Computer,也得以用于周围设备(譬喻打字与印刷机)。

    留意,BEL 不是声卡可能喇叭发出的音响,而是蜂鸣器发出的响声,首要用来报告急察方,举例硬件出现故障时就可以听到那一个声音,有的Computer操作系统正常运行也会听到那么些声音。蜂鸣器没有直接设置到主板上,而是供给延续到主板上的大器晚成种外设,当代广大Computer都不安装蜂鸣器了,纵然输出 BEL 也听不到声音,那个时候 BEL 就从不其余作用了。

  • #### BS (8)

    BackSpace,退格键。退格键的机能,随着时间转移,意义也变得比不上了。

    退格键开始的乐趣是,在打印机和电传机上,往回移动蒸蒸日上格光标,以起到重申该字符的据守。比如您想要打字与印刷贰个a,然后加上退格键后,就成了 aBS^。在机械类打字机上,此措施能够起到实际的重申字符的效应,可是对于新兴的 CTENCORE 下时代以来,就无法起到对应效果了。

    目前世所用的退格键,不止意味着光标往回移动了大器晚成格,同临时间也删除了移动后该职位的字符。

  • #### HT (9)

    Horizontal Tab,水平制表符,相当于 Table/Tab 键。

    水平制表符的效应是用于布局,它决定输出设备前行到下一个报表去管理。而制表符 Table/Tab 的上升的幅度也是灵活不定点的,只不过在大大多器材上制表符 Tab 都预订义为 4 个空格的小幅度。

    水平制表符 HT 不只能减小多少输入者的专门的工作量,对于格式化好的文字来讲,还是能够裁减存款和储蓄空间,因为一个Tab键,就代表了 4 个空格。

  • #### LF (10)

    Line Feed,直译为“给打字与印刷机等喂大器晚成行”,也正是“换行”的意味。LF 是 ASCII 编码中常被误用的字符之后生可畏。

    LF 的最原始的意思是,移动打印机的头到下新生事物正在如日方升行。而除此以外二个 ASCII 字符,CSportage(Carriage Return)才是将打字与印刷机的头移到最左侧,即风华正茂行的开头(行首)。相当多串口公约和 MS-DOS 及 Windows 操作系统,也都以如此达成的。

    而C语言和 Unix 操作系统将 LF 的意思重新定义为“新行”,即 LF 和 CCR-V的结合效应,也等于回车且换行的意趣。

    从程序的角度出发,C语言和 Unix 对 LF 的定义显得特别自然,而 MS-DOS 的落到实处更类似于 LF 的本心。

    近来大家常将 LF 用做“新行(newline)”的坚决守住,大相当多文本编辑软件也都足以管理单个 LF 可能 CGL450/LF 的组成了。

  • #### VT (11)

    Vertical Tab,垂直制表符。它好像于水平制表符 Tab,指标是为了收缩布局中的职业,同不平日间也缩短了格式化字符时所需求仓库储存字符的半空中。VT 调节符用于跳到下四个标识行。

    说真的,还真没看出稍微地点必要用 VT,因为通常在换行的时候都是用 LF 庖代 VT 了。

  • #### FF (12)

    Form Feed,换页。设计换页键,是用来决定打字与印刷机行为的。当打字与印刷机械收割到此键码的时候,打字与印刷机移动到下意气风发页。

    昨今区别的设备的顶峰对此决定符所表现的表现各个地区别,有个别会去掉显示屏,有些只是展现^L字符,有些只是新换风度翩翩行而已。譬喻,Unix/Linux 下的 Bash Shell 和 Tcsh 就把 FF 看做是多个清空显示屏的吩咐。

  • #### CR (13)

    Carriage return,回车,表示机器的滑行部分(恐怕底座)再次来到。

    CXC60回车的本心是让打字与印刷头回到左边界,并不曾运动到下风流罗曼蒂克行的情趣。随着年华的流逝,后来大家把 CWrangler 的意趣弄成了 Enter 键,用于暗指输入实现。

    在数据以显示屏展现的情形下,人们按下 Enter 的同期,也意在把光标移动到下生机勃勃行,由此C语言和 Unix 重新定义了 C普拉多的意义,将其表示为运动到下大器晚成行。当输入 CLacrosse时,系统也时临时隐式地将其更动为LF。

  • #### SO (14) 和 SI (15)

    SO,Shift Out,不用切换;SI,Shift In,启用切换。

    早在 一九五七s 时期,设计 ASCII 编码的英国人就早已想到了,ASCII 编码不止能用于斯洛伐克共和国(The Slovak Republic)语,也要能用于外文字符集,那很首要,定义 Shift In 和 Shift Out 正是思量到了那点。

    最伊始,其意为在西印第安纳波利斯语和拉丁语之间切换。西纽卡斯尔语 ASCII(也即 KOI-7 编码)将 Shift 作为二个习感觉常字符,而拉丁语 ASCII(也正是我们平淡无奇所说的 ASCII)用 Shift 去改造打字与印刷机的书体,它们统统是三种意义。

    在拉丁语 ASCII 中,SO 用于产生双倍宽度的字符(类似于全角),而用 SI 打字与印刷压缩的字体(类似于半角)。

  • #### DLE (16)

    Data Link Escape,数据链路转义。

    有的时候大家须要在通讯进程中发送一些调整字符,可是总有点情况下,这几个调节字符被作为了普通的数据流,而未有起到对应的决定机能,ASCII 编码引进 DLE 来消除那类难题。

    假如数量流中检测到了 DLE,数据接纳端会对数据流中接下去的字符另作管理。可是现实哪些管理,ASCII 标准中并从未概念,只是弄了个 DLE 去封堵不荒谬的数据流,告诉接下去的多少要极度对待。

  • #### DC1 (17)

    Device Control 1,或者 XON – Transmission on。

    以此 ASCII 调整符固然原先定义为 DC1, 不过前几日常表示为 XON,用于串行通讯中的软件流动调查控。其重要功能为,在通讯被决定符 XOFF 中断之后,重新开头消息传输。

    用过串行终端的人应该还记得,当一时候数据出错了,按 Ctrl+Q(等价于XON)有时候能够起到再一次传输的法力。那是因为,此 Ctrl+Q 键盘系列实际上正是发生 XON 调控符,它能够将那么些由于极端或然主机方面,由于临时冒出的荒谬的 XOFF 调整符而中断的通讯解锁,使其健康通讯。

  • #### DC3 (19)

    Device Control 3,或许 XOFF(Transmission off,传输中断)。

    #### EM (25)

    End of Medium,已到介质末端,介质存款和储蓄已满。

    EM 用于,当数码存款和储蓄达到串行存款和储蓄介质末尾的时候,就如磁带或磁头滚动到介质末尾同样。其用于表述数据的逻辑终点,即不用非若是物理上的达到规定的典型数据载体的结尾。

  • #### FS(28)

    File Separator,文件分隔符。FS 是个很有意思的调整字符,它能够让我们来看 一九六〇s 时期的微管理器是怎么着协会的。

    大家明日习以为常于自由访谈片段存款和储蓄介质,举例 RAM、磁盘等,不过在筹划ASCII 编码的不胜时代,大多数多少也许种种的、串行的,并不是自由拜谒的。此处所说的串行,不止指的是串行通讯,还指的是顺序存款和储蓄介质,比方穿孔卡片、纸带、磁带等。

    在串行通讯的时代,设计那样一个用于表示文件分隔的调节字符,用于私分八个单身的文书,是如日中天件很睿智的业务。

  • #### GS(29)

    Group Separator,分组符。

    ASCII 定义调控字符的由来之新生事物正在如日中天就是挂念到了数码存款和储蓄。

    多数情况下,数据库的确立都和表有关,表包涵了多条记下。同一个表中的具备记录属于同旭日东升类型,不一致的表中的笔录属于分裂的项目。

    而分组符 GS 正是用来分隔串行数据存款和储蓄系统中的分歧的组。值得注意的是,那时候还还没运用 Excel 表格,ASCII 时期的人把它叫做组。

  • #### RS(30)

    Record Separator,记录分隔符,用于分隔二个组或表中的多条记下。

  • #### US(31)

    Unit Separator,单元分隔符。

    在 ASCII 定义中,数据库中所存款和储蓄的细小的数额项叫做单元(Unit)。目前日大家称其字段(Field)。单元分隔符 US 用于私分串行数据存款和储蓄景况下的例外单元。

    于今的数据库完成都务求超过半数种类都有所一定的尺寸,尽管不常候恐怕用不到,不过对于每两个字段,却都要分配丰裕大的上空,用于寄放最大大概的数目。

    这种做法的弊病正是挤占了大气的储存空间,而 US 调控符允许字段具有可变的长短。在 一九六零s 时代,数据存款和储蓄空间很有限,用 US 将不相同单元分隔断,能节省数不胜数上空。

  • #### DEL (127)

    Delete,删除。

    有人或许会问,为什么 ASCII 编码中其他调节字符的值都极小(即 0~31),而 DEL 的值却很大呢(为 127)?

    那是出于这些奇怪的字符是为纸带而定义的。在老大年代,绝大很多的纸带都以用7个孔洞去编码数据的。而 127 那一个值所对应的二进制值为111 1111(全数 7 个比特位都以1),将 DEL 用在现有的纸带上时,全数的洞就都被戳穿了,就把曾经存在的数额都擦除掉了,就起到了删减的功用。

判断题:

C语言使用的正是 ASCII 编码,字符在蕴藏时会转变来对应的 ASCII 码值,在读取时也是基于 ASCII 码找到呼应的字符。(X)

答:C语言不经常候使用 ASCII 编码,一时候却不是,而是利用前边两节中将在讲到的 GBK 编码和 Unicode 字符集。

 

本文由3016.com-金沙城中心官网发布于编程,转载请注明出处:ASCII码专题

关键词: