版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摩尔斯电码摩尔斯电码(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母、数字和标点符号等。它由美国人艾尔菲德维尔发明。艾尔菲德维尔构思了一个方案,通过点、划和中间的停顿,可以让每个字元和标点符号彼此独立地发送出去。作为一种信息编码标准,摩尔斯电码拥有其他编码方案无法超越的长久的生命。摩尔斯电码在海事通讯中被作为国际标准一直使用到1999年。1997年,当法国海军停止使用摩尔斯电码时,发送的最后一条消息是:“所有人注意,这是我们在永远沉寂之前最后的一声呐喊!”字符电码符号字符电码符号字符电码符号字符电码符号AB C D EF G HIJ K L M N
2、 O P Q R STUVW X Y Z 数字字符电码符号字符电码符号字符电码符号字符电码符号0 1 2 3 456 7 8 9 ASCII美国信息交换标准码(ASCII:American Standard Code for Information Interchange)起始于50年代后期,并最终在1967年定案。最终的代码有26个小写字母,26个大写字母,10个数字,32个符号, 33个控制代码和一个空格。BinDecHex缩写/字符解释00000000000NUL(null)空字符00000001101SOH(start of headling)标题开始00000010202STX (s
3、tart of text)正文开始00000011303ETX (end of text)正文结束00000100404EOT (end of transmission)传输结束00000101505ENQ (enquiry)请求00000110606ACK (acknowledge)收到通知00000111707BEL (bell)响铃00001000808BS (backspace)退格00001001909HT (horizontal tab)水平制表符00001010100ALF (NL line feed, new line)换行键00001011110BVT (vertical t
4、ab)垂直制表符00001100120CFF (NP form feed, new page)换页键00001101130DCR (carriage return)回车键00001110140ESO (shift out)不用切换00001111150FSI (shift in)启用切换000100001610DLE (data link escape)数据链路转义000100011711DC1 (device control 1)设备控制1000100101812DC2 (device control 2)设备控制2000100111913DC3 (device control 3)设备控制
5、3000101002014DC4 (device control 4)设备控制4000101012115NAK (negative acknowledge)拒绝接收000101102216SYN (synchronous idle)同步空闲000101112317ETB (end of trans. block)传输块结束000110002418CAN (cancel)取消000110012519EM (end of medium)介质中断00011010261ASUB (substitute)替补00011011271BESC (escape)溢出00011100281CFS (file s
6、eparator)文件分割符00011101291DGS (group separator)分组符00011110301ERS (record separator)记录分离符00011111311FUS (unit separator)单元分隔符001000003220(space)空格001000013321!001000103422001000113523#001001003624$001001013725%001001103826&001001113927001010004028(001010014129)00101010422A*00101011432B+00101100442C,00
7、101101452D-00101110462E.00101111472F/001100004830000110001493110011001050322001100115133300110100523440011010153355001101105436600110111553770011100056388001110015739900111010583A:00111011593B;00111100603C00111111633F?010000006440010000016541A010000106642B010000116743C010001006844D010001016945E01000
8、1107046F010001117147G010010007248H010010017349I01001010744AJ01001011754BK01001100764CL01001101774DM01001110784EN01001111794FO010100008050P010100018151Q010100108252R010100118353S010101008454T010101018555U010101108656V010101118757W010110008858X010110018959Y01011010905AZ01011011915B01011100925C01011101
9、935D01011110945E01011111955F_011000009660011000019761a011000109862b011000119963c0110010010064d0110010110165e0110011010266f0110011110367g0110100010468h0110100110569i011010101066Aj011010111076Bk011011001086Cl011011011096Dm011011101106En011011111116Fo0111000011270p0111000111371q0111001011472r0111001111
10、573s0111010011674t0111010111775u0111011011876v0111011111977w0111100012078x0111100112179y011110101227Az011110111237B011111001247C|011111011257D011111101267E011111111277FDEL (delete)删除ASCII是一个真正的美国标准,所以他不能很好的满足其他将英语的国家的需要。例如英国的英镑符号()就没有。解决方案为代码页。在小型机开发初期,就已经严格建立了8位字节。因此,如果使用一个字节来保存字符,则可以由128个附加的字符来补充。
11、最低的128个代码总是相同的,较高的128个代码则取决于定义代码页的语言。如果用户为PC键盘,显示卡,和打印机指定了一个代码页,然后在PC上创建、编辑和打印文档,一切都很正常,每件事都会保持一致。然而,如果用户试图与使用不同代码页的用户交换文件,就会产生问题。当然,应用程序可以通过将代码页信息与文档一起保存的方式来解决问题,但是且慢,更糟的事情还在后头。在中国、日本和韩国的象形文字符号大约有21000个,如何容纳这些语言而仍保持和ASCII的某种兼容性呢。解决方案为双字节字符集双字节字符集(DBCS:double-byte character set)与其他代码页一样,最初的128个代码是AS
12、CII,较高的128个代码中的某些总是跟随者第二个字节(称作首字节和跟随字节)。这两个字节一起定义一个字符,通常是一个复杂的象形文字。DBCS的问题在于不是每个字符都由两个字节代表,一些字符由一个字节表示,而另一些字符则由两个字符表示。这会引起附加的编程问题。例如,字符串中的字符数不能由字符串的字节数决定。必须剖析字符串来决定其长度,而且必须检查每个字节以确定它是否为双字节字符。令人惊讶的是这套机制,虽然对付,但仍被程序员所接受了,今天我们使用的C运行库函数都是在这套机制下编写的。Unicode 解决方案我们面临的问题是世界上的书写语言不能简单地用256个8位代码表示。怎么办?用16位表示呗。
13、Unicode就是这样一个字符集,它的每个字符都是16位宽,而且最大的好处是,您将只需要操作一个字符集,因为Unicode字符集,涵盖了所有文字符号。再也不用考虑代码页之间的转换问题了。当然,Unicode也有缺点,那就是他的字符串占用的内存是ASCII的两倍。char与 wchar_t即便使用Unicode char数据类型仍然表示1个字节的存储空间如果想定义一个两个字节宽度的字符存储空间 需要使用wchar_t;例如char c = A;wchar_t c = LA;注意紧挨的大写字母L,它将告诉编译器该字符按宽字符保存 即每个字符占用2个字节char * p = “Hello”;wcha
14、r_t * p = L”Hello”;世界正在改变我们现在尝试着获取字符串的长度char * pc = “Hello!”;iLength = strlen(pc);字符串长度为6。wchar_t * pw = L”Hello!”;再次调用strleniLength = strlen(pw);您会发现,iLength 的值为1。为什么?字符串L”Hello!” 在内存中的格式为。48 00 65 00 6C 00 6C 00 6F 00 21 00strlen 会把第一个字节作为字符开始计数,但接着下一个字节是0,则表示字符串结束。你知道这意味这什么么?如果想支持Unicode那就得重写所有的C运行库函数,当然也没有那么夸张,只要重写所有跟字符串有关的函数就可以了,而且好消息是,这些工作已经做完了。想要获取一个宽字符的字节数只要调用wcslen就可以了iLength = wcslen(pw);两套字符集 一套维护代码Unicode 最大的缺点是程序中的每个字符串都将占用两倍的存储空间。而且某些地区可能值支持ASCII并不支持Unicode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辰阳明德小学S版四年级语文下册教案(表格式)
- 博大精深的中华文化教学参考教案新人教必修
- 《萝卜回来了》教学设计
- 《物流运输实务》电子教案
- 旅游景区导游聘用合同范本
- 养猪场租赁合同:养殖产业转型
- 医疗美容医师聘用合同
- 健身房宿舍管理员招聘启事
- 咖啡馆冬季空调租赁合同范文
- 影剧院指示牌安装协议
- 人教版三年级数学上册期中考试试卷带答案
- 2024年教务管理岗位劳动协议范本版
- 缤纷舞曲-《青年友谊圆舞曲》教学课件-2024-2025学年人音版(简谱)(2024)七年级音乐上册
- 2024年危重患者护理管理制度范本(五篇)
- 2024-2025学年陕西省西安交大附中高二(上)第一次月考数学试卷(含答案)
- 2024年全国职业院校技能大赛中职组(婴幼儿保育赛项)省赛考试题库(含答案)
- 中国记者日介绍主题班会 课件
- 光伏发电项目试验检测计划
- 会计领军人才笔试题库及答案
- 人教版九年级上册数学期中考试试卷有答案
- 洗浴搓澡承包合同书(2篇)
评论
0/150
提交评论