ASCII码专题

ASCII(American Standard Code for Information
Interchange,美国音交互换标准代码)是同样效基于拉丁字母的字符编码,共录取了
128 独字符,用一个字节就可以储存,它一律于国际标准 ISO/IEC 646。ASCII
规范为 1967 年首先浅公布,最后一破创新是于 1986 年,它包含了 33
独控制字符(具有某些特殊作用可无法出示的字符)和 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-9九独数字,a-z的26个假名之大大小小写,各个标点符号,以及回车、空格、退格等片特殊符号。
ASCII
码使用指定的8号二迈入制数组合来表示,每个ASCII码是一个8各类二上前制数,一个ASCII码只能表示一个字符。

本着控制字符的解释

ASCII 编码中第 0~31 只字符(开头的 32 独字符)以及第 127
个字符(最后一个字符)都是不可见的(无法出示),但是她都有局部特有功能,所以叫控制字符( Control
Character)或者功能码(Function Code)。

立即 33
单控制字符大都与通信、数据存储和老式装备有关,有些在现世计算机遭到之含义已经转移了。

稍微控制入需要一定的计算机基础才能够懂得,初家可以跳过,选择好之懂得即可。

 

脚列有了一部分控制字符的求实职能:

  • #### NUL (0)

    NULL,空字符。空字符起初本意可以拘留作为
    NOP(中文意为空操作,就是啥都非开的意思),此岗位好忽略一个字符。

    就此有这个空字符,主要是用于计算机早期的笔录信息之纸带,此处留个
    NUL
    字符,意思是先行占此位置,以要后用,比如你哪天想起来了,在此职位在拓宽一个别的什么字符之类的。

    新生为,NUL 被用于C语言中,表示字符串的收,当一个字符串中间出现
    NUL
    时,就代表这个是一个字符串的末段了。这样即使便宜按照好要求去定义字符串,多长都推行,当然要你内存放得下,然后最后加一个\0,即空字符,意思是当下字符串到此结束。

  • #### SOH (1)

    Start Of
    Heading,标题开始。如果信息沟通交流重点以令和信息的款型来说,SOH
    就可用来标记每个消息之初步。

    1963年,最开头 ASCII 标准中,把此字符定义为 Start of
    Message,后来还要改呢今日的 Start Of Heading。

    兹,这个 SOH 常见于主从(master-slave)模式之 RS232
    的通信中,一个主设备,以 SOH
    开头,和由设备进行通信。这样便于从设备以数传出现谬误的时候,在生一致次等通信之前,去实现再次联合(resynchronize)。如果没有一个清楚的好像于
    SOH
    这样的标记,去标记每个命令的序曲或开的话语,那么又联合,就好为难落实了。

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

    STX 表示 Start Of Text,意思是“文本开始”;ETX 表示 End Of
    Text,意思是“文本结束”。

    透过某种通讯协议去传输的一个数码(包),称为一帧以来,常会蕴藏一个帧头,包含了寻址信息,即你是要发给谁,要发送到目的地是何,其后跟着真正使发送的数码内容。

    假定 STX,就用于标记是数目内容之起。接下来是若传的数量,最后是
    ETX,表明数据的终结。

    万一当中具体传输的数额内容,ASCII
    并不曾失去定义,它同公所用底导协议有关。

    帧头

  • #### BEL (7)

    BELl,响铃。在 ASCII 编码中,BEL 是只比有趣的事物。BEL
    用一个足以听得见的响动来诱惑人们的专注,既可用于计算机,也得用来周边设备(比如打印机)。

    在意,BEL
    不是声卡或者喇叭有之响声,而是蜂鸣器发出的声息,主要用以报警,比如硬件出现故障时即便见面听到这声音,有的计算机操作系统正常启动为会见听到此声音。蜂鸣器没有一直装至主板及,而是欲连续至主板及之一律种植外设,现代游人如织计算机都非设置蜂鸣器了,即使输出
    BEL 也放不至声音,这个时 BEL 就没外企图了。

  • #### BS (8)

    BackSpace,退格键。退格键的法力,随着时间转移,意义也转移得不比了。

    退格键起初的意思是,在打印机和电传打字机上,往回走一约束光标,以自及强调该字符的用意。比如您想要打印一个
    a,然后加上退格键后,就变成了
    aBS^。在机械类打字机上,此办法会打至实在的强调字符的意向,但是对新兴底
    CTR 下时期以来,就无法从至对应效果了。

    倘现代所用底退格键,不仅仅意味着光标往回走了一格,同时为抹了挪后该职位的字符。

  • #### HT (9)

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

    水平制表符的意向是用以布局,它决定输出设备前进到下一个表格去处理。而制表符
    Table/Tab 的宽窄为是活不稳定的,只不过当大部分装置上制表符 Tab
    都预定义为 4 单空格的增幅。

    水平制表符 HT
    不仅能够抽数额输入者的工作量,对于格式化好之契来说,还能减少囤空间,因为一个Tab键,就顶替了
    4 个空格。

  • #### LF (10)

    Line Feed,直译为“给打印机等喂一实施”,也就是是“换行”的意。LF 是 ASCII
    编码中时时受误用的字符之一。

    LF 的太原始之义是,移动打印机的条至下一行。而另外一个 ASCII
    字符,CR(Carriage
    Return)才是拿打印机的条移到最左边,即一行的启幕(行首)。很多串口协议及
    MS-DOS 及 Windows 操作系统,也还是这样实现之。

    倘若C语言和 Unix 操作系统将 LF 的义重新定义为“新行”,即 LF 和 CR
    的做功能,也尽管是回车且换行的意思。

    自打程序的角度出发,C语言和 Unix 对 LF 的概念显得更为自然,而 MS-DOS
    的贯彻又类似受 LF 的原意。

    而今人们常常以 LF
    用做“新行(newline)”的功用,大多数文本编辑软件为还好拍卖单个 LF
    或者 CR/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,回车,表示机器的滑部分(或者底座)返回。

    CR
    回车的原意是给于印头回到左边界,并没动至下一行的意。随着时空之流逝,后来人们把
    CR 的意来成了 Enter 键,用于示意输入了。

    当数据以屏幕显示的场面下,人们仍下 Enter
    的还要,也要将光标移动及下一行,因此C语言和 Unix 重新定义了 CR
    的意义,将那个象征也运动及下一行。当输入 CR
    时,系统为每每隐式地将该转移为LF。

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

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

    早在 1960s 年代,设计 ASCII 编码的美国人口即便已经想到了,ASCII
    编码不仅仅能够用于英文,也使力所能及用来外文字符集,这十分关键,定义 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
    是只很有意思的控制字符,它可以被我们来看 1960s
    年代的处理器是哪组织的。

    俺们今天习以为常给自由访问有存储介质,比如 RAM、磁盘等,但是于计划
    ASCII
    编码的非常年代,大部分数要各个的、串行的,而无是即兴访问的。此处所说之串行,不仅仅指的凡串行通信,还靠的是顺序存储介质,比如穿孔卡片、纸带、磁带等。

    每当串行通信的一代,设计这样一个用以表示文件分隔的控制字符,用于私分两单独立的文书,是一律码特别睿智的政工。

  • #### GS(29)

    Group Separator,分组符。

    ASCII 定义控制字符的缘由有就是是考虑到了多少存储。

    绝大多数情景下,数据库的建都和阐明有关,表包含了多长达记下。同一个表中的有记录属于同一档次,不同之表中的记录属于不同的品类。

    倘若分组符 GS
    就是之所以来分隔串行数据存储系统面临的例外之组。值得注意的是,当时还不曾以
    Excel 表格,ASCII 时代之总人口拿它们叫做组。

  • #### RS(30)

    Record Separator,记录分隔符,用于分隔一个组要表中的基本上漫长记下。

  • #### US(31)

    Unit Separator,单元分隔符。

    于 ASCII
    定义着,数据库被所蕴藏的极其小之数据项叫做单元(Unit)。而今天我们遂其字段(Field)。单元分隔符
    US 用于私分串行数据存储环境下的不同单元。

    今日之数据库实现还务求大部分路且具有稳定的长短,尽管发生时光也许因此非顶,但是对每一个字段,却还设分配足够好之空中,用于存放最要命或的数额。

    这种做法的流弊就是占了汪洋底储存空间,而 US
    控制符允许字段有可变的尺寸。在 1960s 年代,数据存储空间大简单,用
    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
字符集。

 

补码是为此来代表带符号数字之。先以十进制数转成对应的次上制数,在高高的位前加上0或1表示数字之长,就来了数字的原码,再以一定之规则转换成为补码。
补码只能表示数字。不可知表示字母或标点等特殊字符。

举个例,比如数字67,补码表示也:01110011,8各项二上前制数表示一个数字。
如应用ASCII码,只能对6跟7随即半单数字分别就此8号二迈入制数表达,因为ASCII码的存放是坐各级一样各项也单位之,每个ASCII码只能表示一个字符。
6:00110110
7:00110111
67: 00110110 00110111

为ASCII码形式储存,每个数字占1个字节,10002凡是5个数字,占5单字节
盖二进制形式储存,每个整数不论高低占2个字节,10002凡1个整数,占2单字节

A对应于十六进制的10,也不怕第二进制的1010,所以以二进制存储时凡1010,在内存中实际的位数和而的操作系统有关
假使就此一个记事本打开一个图像文件或者声音文件或者一个EXE文件
见面来得乱码,就是以记事本以文本格式来打开所要开拓的内容,即用文本格式(或者说字符格式)来处理二进制数据造成的结果

 

处理器存储数字时怎么不用ASCII码呢?那个表里不是为有数字么?
为用 ASCII 码存储数字不敷经济,而且免便于计算。
补充:
推个例证,12345 和 6789 两独数字,假如用 ASCII 码储存,就会见是:
00110001 00110010 00110011 00110100 00110101

00110110 00110111 00111000 00111001
可是就此健康的二进制整形储存,就见面是:
00110000 00111001

00010110 00101110
假若一旦计算 12345+6789,明显于是二进制储存就见面比 ASCII 占优势。
追问:
那干什么表里还要起数字为,都为此二进制不就执行了
回答:
ASCII
表里还是得数字,因为计算出来的结果要用打印出了,这时候就得把二进制的数字转换成
ASCII 码了。输入的时候,就是扭曲把 ASCII
码转换成二进制来保存了。更何况有时候数字又重于言意思,如
3D、AK47,这样的构成就得用 ASCII 码来存储了。

骨子里不外乎整型以外,还有实型的数字,处理多少数碰。终结一句子,就是数字以电脑中可以生异的积存方法,是若看用啊一样种植表达方式比较有利的。也因而,在电脑语言中须证明用哪一样栽艺术囤,也就算是变量的数据类型。

 

 

当计算机的存储单元中,一个ASCII码值占一个字节(8只二进制位),其高位用作奇偶校验位。所谓奇偶校验,是靠以代码传送过程遭到因故来查看是不是出现错误的同一种办法,一般分奇校验和偶发性校验两栽。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则于最高位上1;偶校验规定:正确的代码一个字节中1之个数必须是偶数,若非偶数,则在高位添1。

 

 

 

世家吓,我思咨询一下ascii码是储存于计算机哪里?是在操作系统被即设置好了呢?还是存储在硬件上?

1、微机的键盘是带CPU的,它把按键信息转换成对应的ascii码,传给主机,操作系统接收到的就是一串ascii字符了。在dos操作系统时代,操作系统只要把对应的ascii码存到显存里,显卡就会根据ascii码查找字模,并显示在屏幕上。windows时代,由于是图形界面,可设定不同字体及字号等,所以这个由ascii码转换成字模的过程就是windows的底层接口和显示驱动来完成的。这一切的处理过程与显示器无关,显示器只是把显卡送来的视频信号扫描出来而已。
2、ascii码本身不需要储存,需要储存的只是代码和字模的对应表
3、键盘和鼠标均是基本的硬件,可以说是最低层的设备,它内部会有CPU处理这些信号,把按键信息处理成主机可识别的二进制数据,然后送给主机,主机收到这些信息时会触发中断,中断信号会传递给CPU,CPU在允许的情况下就会接收这些数据,这是硬件层面的理解。
主机接收数据及处理数据的过程则是软件层面的理解了,驱动负责把这些数据转换成操作系统可理解的数据,操作系统根据再根据这些数据,进行相应操作,如把字符显示到屏幕上。

你的提问中,可见你对计算机原理的理解是很混乱的,还是先看看书吧

每当微机的存储单元中,一个ASCII码值占一个字节(8单二进制位),其高位用作奇偶校验位。所谓奇偶校验,是凭于代码传送过程中之所以来查是不是出现谬误的一模一样栽方式,一般分奇校验和偶发性校验两种植。奇校验规定:正确的代码一个字节中1底个数必须是奇数,若非奇数,则以嵩位上1;偶校验规定:正确的代码一个字节中1底个数必须是偶数,若非偶数,则以嵩位添1。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图