[英]How does a computer recognise a 0 in binary?
在用脉冲(例如电或光而不是磁极化或凹坑)表示二进制数据的系统中,0 是如何表示的。
例如,假设我们有数字 8(1000),发送计算机如何表示 3 个 0? 如果只发送一个电脉冲(对于打开位置的 1 位),接收计算机如何区分 1、10、1000 等?
在通信通道(包括磁盘存储)中,有必要以某种方式表达位的数量,以及编码哪些是 1 哪些是 0。说 0 表示缺少某物是一种常见的过度简化; 你已经看到了这个问题:如果我通过“安静”一百次发送一百个 0,接收器不能确定这是否正好是 100 位。
最简单的方法称为曼彻斯特编码:对于零,信号在前半段时间关闭,在第二段时间开启; 对于一个,它是相反的。 所以,中间总是有一个过渡,可以在解码位时使用,以跟踪你看到了多少。 还有一个问题,如果你有一长串 0,它看起来和一长串 1 是一样的,所以你需要确保每条消息都以一个同时有 0 和 1 的模式开始,这样它就会明确界限在哪里。 https://en.wikipedia.org/wiki/Manchester_code
曼彻斯特编码在计算机磁带和磁盘存储的早期使用,经过一些小的改进,变成了称为 MFM 的东西,用于软盘。
如今,由于到处都在使用更高的数据速率,因此需要在短距离内使用此类方法:例如,在处理器与磁盘驱动器和监视器之间的通信中。
对于数字无线电、电缆和磁存储,曼彻斯特已被一次编码多个位的方法所取代; 例如,QAM-64 可能用于数字电缆,它通过传输 64 个可能的“符号”之一来一次编码 6 位,这些符号旨在使接收器更容易找到符号边界并提取 64 位可靠。
一些极端:
有一种称为 OFDM 的技术,用于数字无线电,它对每个“符号”中的数百或数千位进行编码; 编码和解码在计算上非常昂贵,但是在存在来自建筑物的“回声”和类似问题的情况下,系统的容忍度要高得多。
GPS 使用“金码”:对于“0”,您传输某种复杂的模式,它看起来很像随机噪声,重复了几次。 对于“1”,您传输相同的模式,反转。 数据速率非常低,但优点是可以从非常微弱的无线电信号中检测到信号,并提供非常准确的时间参考。
CD 也是一个有趣的例子:每个字节都被编码为 14 个“通道位”,并且要求通道中每次运行的 0(或 1)长度至少为 3,最多为 11,并且这种模式变成了磁盘上的一系列光学“坑”; 过长或过短的凹坑都会导致解码器出现问题。 编码器还必须形成 14 位模式以满足在任何通道位范围内 0 和 1 的数量必须大致相等的要求:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.