查看“︁代码”︁的源代码
←
代码
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{Unreferenced|time=2017-06-18T07:14:36+00:00}} {{NoteTA |G1 = IT |1 = zh-hans:代码; zh-hant:代碼; }} {{Databox}} {{Not|计算机代码}} [[File:International_Morse_Code.svg|右|缩略图|374x374像素|[[莫尔斯电码]]是一种著名的代码]] 在[[通信]]和[[資訊處理週期|資訊處理]]中,'''代码'''('''code''')是指一套转换[[信息]]的规则系统,例如将一个[[字母]]、[[單詞]]、声音、图像或[[手势]]转换为另一种形式或表达,有时还会[[数据压缩|缩短]]或[[保密性|加密]]以便通过某种[[信道]]或存储[[传播媒体|媒体]]通信。一个最早的例子是[[語言]]的发明,它使人可以通过[[说话]]将他看到、听到、感受到或想到的事情表达给其他人。但是,说话的通信范围局限于声音可以有效传播、辨识的范围,并且发言只能传达给现有的听众。将言谈转化为[[视觉系统|视觉]][[符号]]的[[寫作]]扩大了跨越[[时间]]、[[空间]]的通信表达。代码有时亦称'''代号'''等。 而编码(encoding)能将{{tsl|en|Communication source|通信源|源头}}的信息转化为便于通信或存储的符号。解码(Decoding)则是将其逆向还原的过程,将代码符号转化回收件人可以理解的形式。 编码的其中一个原因是在{{tsl|en|Plain language|平实语言}}、口语或写作难以实现实现的情况下进行通信。例如,[[旗语]]可以用特定标记表达特定信息,站在远处的另一个人可以解读标识来重现该信息。 == 理论 == {{Main|编码理论}} 在[[信息论]]和[[计算机科学]]中,代码通常被认为是一个独特的从一个源[[字母表]]表示成符号的[[算法]],通过''编码的''字符串,这些字符串可能在一些其他的目标字母表中。通过连接编码字符串获得在源字母表上表示符号序列的扩展代码。 在给出一个数学上精确的定义之前,这是一个简短的例子。映射 <math>C=\{a\mapsto0,b\mapsto01,c\mapsto011\}</math> 是一个代码,其源字母表是集合 <math>\{a,b,c\}</math>,其目标字母表是集合 <math>\{0,1\}</math>。使用扩展代码,编码后的字符串0011001可以被分组成代码字0 011 0 01,这些代码又可以解码为源符号序列 ''acab''。 使用[[形式语言理论]]中的术语,这个概念的精确数学定义如下:让 S 和 T 是两个有限集,分别称为源[[字母表]]和目标[[字母表]]。 '''代码''' <math>C:S\rightarrow T^*</math> 是将每个符号从 S 映射到 T 上的[[字符串|符号序列]]的[[偏函数|总函数]]。<math>C</math> 的扩展 <math>C'</math> 是 <math>S^*</math> 到 <math>T^*</math> 的[[同态]],它自然地把每个源符号的序列映射到目标符号序列。 === 可变长度编码 === {{Main|[[可变长度编码]]}} 在本节中,我们考虑从某个字典中的{{En-link|代码字|code word}}对每个源(明文)字符进行编码的代码,这些代码字的[[串接|连接]]为我们提供了已编码的字符串。当明文字符具有不同的概率时,可变长度代码特别有用;另见[[熵編碼法|熵编码]]。 ''前缀代码''是具有“前缀属性”的代码:系统中不存在作为集合中任何其他有效代码字的[[前缀]](开始)的有效代码字。[[霍夫曼编码]]是最知名的用于导出前缀码的算法。即使代码不是由霍夫曼算法产生的,前缀代码也被广泛称为“霍夫曼代码”。前缀代码的其他示例是[[国际电话区号列表|国家呼叫代码]]、[[ISBN]] 的国家和出版商部分,以及 [[通用移动通讯系统|UMTS WCDMA]] 3G 无线标准中使用的辅助同步代码。 [[克拉夫特不等式|卡夫不等式]]给出了前缀码中可能存在的码字长度集。实际上,任何唯一可解码的一对多代码,不一定是前缀代码,都必须满足卡夫不等式。 === 错误纠正编码 === {{Main|错误检测与纠正}}{{参见|分組碼}} 代码也可用于以更耐受传输或存储错误的方式表示数据。 这种所谓的[[纠错码]]通过在存储(或传输)的数据中包含精心设计的冗余来工作。 示例包括[[汉明码]]、[[里德-所罗门码]]、{{En-link|里德-穆勒码|Reed–Muller code}}、{{En-link|哈达码代码|Hadamard code}}、[[BCH码]]、[[涡轮码]]、{{En-link|二进制戈莱码|Binary Golay code}}、{{En-link|Goppa码|Goppa code}}、[[低密度奇偶檢查碼|低密度奇偶检查码]]和{{En-link|时空码|Space–time code}}。 可以优化错误检测代码以检测''突发错误''或''随机错误''。 == 例子 == === 沟通中为简洁使用的代码 === === 字符编码 === 目前最广为人知并被使用的数据通信代码(也称字符表示)是[[ASCII]]。 它用7比特[[二进制]]数字表示128个[[字符]]——即由7个为1或0的[[位元]]组成。还有许多其他编码用一个[[字节]]表示每个字符(通常被称为[[代码页]]), 整数[[码位]] ([[Unicode]])或者一个字节序列([[UTF-8]]). === 遗传密码 === === 哥德尔代码 === 在[[数学]]中,[[哥德尔数|哥德尔代码]]是[[哥德尔不完备定理]]的基础。其中的想法是将[[數學符號]]映射到一个[[自然数]] (使用一个[[哥德尔数]])。 === 其他 === === 密码学 === == 其他例子 == 编码的其他例子包括: * 编码 ([[認知]]中) 是解释传入刺激的基本感知过程; 从技术上讲,它是一个复杂的、多阶段的过程,将相对客观的感官输入(如光、声)转化为主观上有意义的体验。 * {{En-link|内容格式|content format}} 是一种为了将一种特定类型的[[数据]]转换成[[信息]]的特定编码格式。 * 文本编码使用[[置标语言]]来标记结构和其他文字的特性以方便计算机处理。(另见[[文本編碼規範|文本编码规范]]。) * 正式语言 A 的{{tsl|en|Semantics encoding|语义编码}}非正式语言 B 是一种使用语言 B 表示语言 A 的所有术语(例如程序或描述)的方法。 * [[数据压缩]],将信号转换为针对[[传输]]或[[儲存裝置|存储]]优化的代码,通常使用[[编解码器]]完成。 * [[神经编码]]是信息在[[神經元|神经元]]中表达的方式。 * {{tsl|en|Encoding (memory)|记忆编码}},将感觉转化为记忆的过程。 * [[類比電視|电视编码]]:[[NTSC制式|NTSC]], [[PAL制式|PAL]] 和 [[SECAM制式|SECAM]] 解码的其他例子包括: * [[語法分析器|解码 (计算机科学)]] * [[译码方法]], 通信理论中用于解码通过噪声信道发送的码字的方法 * [[数字信号处理]], 研究数字信号和这些信号的处理方法 * [[數位類比轉換器]], 使用模拟电路进行解码操作 * 单词[[基础语音教学法|解码]],使用[[基础语音教学法|拼音]]将其译码为印刷图案,将它们译为语言读音 == 代码与首字母缩略词 == [[首字母縮略字]]和缩写可以认为是一种代码,并且某种意义上所有[[語言]]和书写系统都是人类思维的代码。 == 参见 == * {{tsl|en|Asemic writing|非语意写作}} * [[密碼 (密碼學)]] * {{tsl|en|Code (semiotics)|代码 (符号学)}} * {{tsl|en|Equipment codes|设备代码}} * {{tsl|en|Quantum error correction|量子错误纠正}} * [[符號學]] * [[代号]](Code name) == 参考资料 == {{reflist}} {{normdaten}} [[Category:编码]] [[Category:信号处理]]
该页面使用的模板:
Template:Databox
(
查看源代码
)
Template:En-link
(
查看源代码
)
Template:Main
(
查看源代码
)
Template:Normdaten
(
查看源代码
)
Template:Not
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:Tsl
(
查看源代码
)
Template:Unreferenced
(
查看源代码
)
Template:参见
(
查看源代码
)
返回
代码
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息