Encoding 计算机如何识别二进制中的0?

Encoding 计算机如何识别二进制中的0?,encoding,binary,computer-science,transmission,Encoding,Binary,Computer Science,Transmission,在一个系统中,二进制数据是用电或光等脉冲来表示的,而不是用磁极化或凹坑来表示的,它是如何表示为0的 例如,假设我们有数字8 1000,发送计算机如何表示30?如果只有一个电脉冲被发送到on位置的1位,接收计算机如何区分1、10、1000等?在包括磁盘存储在内的通信信道中,有必要以某种方式表示位的数量,以及1和0的编码。如果说0代表某个事物的缺失,这是一种常见的过于简单化的说法;你已经看到了这个问题:如果我通过100位的“静默”发送100个0,接收器就不能确定这是否是100位 最简单的方法称为曼彻

在一个系统中,二进制数据是用电或光等脉冲来表示的,而不是用磁极化或凹坑来表示的,它是如何表示为0的


例如,假设我们有数字8 1000,发送计算机如何表示30?如果只有一个电脉冲被发送到on位置的1位,接收计算机如何区分1、10、1000等?

在包括磁盘存储在内的通信信道中,有必要以某种方式表示位的数量,以及1和0的编码。如果说0代表某个事物的缺失,这是一种常见的过于简单化的说法;你已经看到了这个问题:如果我通过100位的“静默”发送100个0,接收器就不能确定这是否是100位

最简单的方法称为曼彻斯特编码:对于零,信号在前半段时间关闭,第二段时间打开;一方面,情况正好相反。因此,中间总是有一个过渡,可以在解码比特时使用,以跟踪你看到了多少。仍然存在一个问题,如果您有一个长字符串0,它看起来与一个长字符串1相同,因此您需要确保每个消息都以一个既有0又有1的模式开头,以便清楚边界在哪里。

曼彻斯特编码在计算机磁带和磁盘存储的早期被使用,经过一些小的改进,成为一种被称为MFM的东西,用于软盘

如今,到处都在使用更高的数据速率,因此需要在短距离内使用这种方法:例如,在处理器、磁盘驱动器和监视器之间的通信中

对于数字无线电、电缆和磁存储,曼彻斯特已经被一次编码多个比特的方法所取代;例如,QAM-64可用于数字电缆,通过传输64个可能符号中的一个,一次对6位进行编码,这些符号的设计使接收机更容易找到符号边界并可靠地提取64位

一些极端情况:

有一种称为OFDM的技术,用于数字无线电,它对每个“符号”中的数百或数千位进行编码;编码和解码在计算上非常昂贵,但该系统在存在来自建筑物的“回声”和类似问题的情况下更具容错性

GPS使用“黄金代码”:对于“0”,您会传输某种复杂的模式,看起来很像随机噪声,重复多次。对于“1”,传输相同的模式,反转。数据速率非常低,但优点是可以从非常微弱的无线电信号中检测到信号,并提供非常准确的时间基准

CD也是一个有趣的例子:每个字节被编码为14个“通道位”,通道中的每个0或1运行的长度至少为3,最多为11,并且该模式成为磁盘上的一系列光学“凹坑”;太长或太短的凹坑会导致解码器出现问题。编码器还必须形成14位模式,以满足以下要求:0和1的数量必须在任何通道位长度上大致相等:


假设您正在设计一台计算机,并希望它能够处理数字8二进制:1000。要做到这一点,请设计计算机,使其在任何时候都能处理至少4个电脉冲,而不是像您的示例中那样,二进制数中的每一位对应一个。如果您想了解计算机工作的基本知识,请参加Nand到俄罗斯方块课程和/或阅读诺姆·尼桑和西蒙·肖肯的相应书籍:计算系统的元素。