代码
编辑在通信和信息处理中,代码是一个规则系统,用于将信息--如字母、单词、声音、图像或手势--转换成另一种形式,有时是缩短的或秘密的,以便通过通信渠道进行通信或存储在存储介质中。一个早期的例子是语言的发明,它使一个人通过语言将他们所想、所见、所闻或所感传达给他人。但是,语言将交流的范围限制在一个声音可以传递的距离内,并将听众限制在讲话时在场的人。书写的发明将口头语言转化为视觉符号,扩大了跨越空间和时间的交流范围。
编码的过程将信息从源头转化为符号,用于交流或储存。解码是一个相反的过程,将代码符号转换回接收者理解的形式,如英语或/和西班牙语。
编码的一个原因是在普通的普通语言,口语或书面语言难以或不可能的地方实现交流。例如,信号灯,信号员所持的旗帜或信号塔的臂膀的配置对信息的一部分进行编码,通常是单个字母,和数字。站在很远处的另一个人可以解释这些旗帜并重现所发送的文字。
理论
编辑在信息理论和计算机科学中,代码通常被认为是一种算法,它通过编码的字符串xxx地代表来自某个源字母的符号,而这些字符串可能是其他目标字母。通过串联编码的字符串,可以得到代表源字母表上的符号序列的代码扩展。
在给出一个数学上的精确定义之前,这是一个简单的例子。该映射
C = { a ↦ 0 , b ↦ 01 , c ↦ 011 } {displaystyle C={{amapsto 0, bmapsto 01, cmapsto 011, }}是一个代码,其源字母表被连接起来。
是一个代码,其源字母表是{ a , b , c }的集合。{a,b,c}},其目标字母表是{0 , 1}} {0,1}}。.使用代码的扩展,编码后的字符串0011001可以被分组为0 011 0 01的码字,而这些码字又可以被解码为源符号acab的序列。
使用形式语言理论的术语,这个概念的精确数学定义如下:让S和T是两个有限集合,分别称为源字母和目标字母。一个代码C:S→T ∗ {displaystyle C:,Sto T{*}}是一个总函数,将S的每个符号映射到T上的符号序列。是S ∗ {displaystyle S{*}}到T ∗ {displaystyle T{*}}的同态性。
变长码
在这一节中,我们考虑用某个字典中的一个码字来编码每个源(明文)字符的代码,将这些码字连接起来就得到了一个编码字符串。当明文字符具有不同的概率时,可变长度的编码特别有用;也可参见熵编码。
前缀编码是一种具有前缀属性的编码:系统中没有有效的码字是集合中任何其他有效码字的前缀(开始)。哈夫曼编码是推导前缀码的最著名的算法。前缀码被广泛地称为哈夫曼码,即使该码不是由哈夫曼算法产生的。前缀代码的其他例子包括国家电话代码、ISBN的国家和出版商部分,以及UMTS WCDMA 3G无线标准中使用的二级同步代码。
Kraft's不等式描述了前缀代码中可能存在的码字长度的集合。实际上,任何xxx可解码的一对多代码,不一定是前缀代码,都必须满足Krafts不等式。
纠错码
代码也可以用来表示数据,使其在传输或存储中更能抗击错误。这种所谓的纠错码通过将精心设计的冗余与存储(或传输)的数据结合起来而发挥作用。例子包括汉明码、Reed-Solomon、Reed-Muller、Walsh-Hadamard、Bose-Chaudhuri-Hochquenghem、Turbo、Golay、Goppa、低密度奇偶校验码和时空码。错误检测码可以被优化以检测突发错误,或随机错误。
示例
编辑代码在通信中用于简洁
电缆代码用更短的字取代单词(如船或发票),允许用更少的字符发送相同的信息,更快,更便宜。
代码可以用于简明。当电报信息是快速长距离通信的技术状态时,精心设计的商业代码系统被开发出来,将完整的短语编码到单口(通常是5分钟一组),因此电报员开始熟悉诸如BYOXO(Are
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/192936/