位如何成为一个字节?

时间:2013-12-06 21:56:38

标签: byte

可能是有史以来最基本的计算机问题,但我找不到直截了当的答案,这让我发疯。当一台计算机“读取”一个字节时,它是一个接一个地读取它的一系列零和一个零,还是一次性地读取​​所有8个1和0?

5 个答案:

答案 0 :(得分:2)

计算机系统根据操作类型和数字系统的设计方式以两种方式读取数据。我将用一个非常简单的全加器电路示例来解释这一点。

完整加法器为二进制数字和帐户添加值以及输出(维基百科)

并行操作示例

假设在某些任务中我们需要添加两个8位(1字节)数字,以便在添加时所有位都可用。 那么在这种情况下,我们可以设计一个带有8个全加器的数字系统(每位1个)。

串行操作示例

在其他一些任务中,您会发现所有8位都不会同时可用。 您认为有8个单独的加法器是昂贵的,因为您需要实现其他数学运算(如减法,乘法和除法)。因此,不是有8个单独的单元,而是有1个单元,它们将单独处理位。在这种情况下,我们需要三个存储单元(移位寄存器),这样两个存储单元将存储两个8位数字,一个存储单元将存储结果。在给定的时钟脉冲中,单个位将从两个寄存器中的每一个发送到全加器将执行加法过程,并在单个时钟脉冲中将1位结果传送到结果移位寄存器。

这个图包含一些对这个线程没用的其他东西,但你可以 研究数字逻辑设计和计算机体系结构,如果你想更深入地研究这些东西。

Shift register

Shift register operations demo

答案 1 :(得分:0)

处理器使用定义数量的寄存器长度。 8,16,32,64 ...将寄存器视为一个连接量,每个位一个......这就是在一个处理器内核中一次处理的位数,一次是一个寄存器......处理器有不同类型的寄存器,例如私有指令寄存器或公共数据或地址寄存器

答案 2 :(得分:0)

这实际上超出了Stackoverflow的范围,但它从大学带回了如此美好的回忆。

这取决于。有时计算机一次读取一个位。例如,使用较旧的以太网manchester code。然而,在旧的并行打印机电缆上,有8个引脚,每个引脚发出一点信号,并且立即发送整个字节(字节)。

在串行(一次一位)编码中,您通常会测量线路中的转换或转换为某些明确定义的时钟源。

在并行编码中,您通常一次将所有位读入寄存器并锁存寄存器。 查找触发器,寄存器和逻辑门,以获取有关此低级部分的信息。

答案 3 :(得分:0)

  

比特在串行传输中一次传输,并且   并行传输中的多个位数。按位操作   可选地一次处理一个比特。数据传输率通常是   以每秒单位比特(bit / s)的十进制SI倍数测量,   例如kbit / s。

Wikipedia's article on Bit

答案 4 :(得分:0)

这样想,至少在物理层面:从A点到B点的传输电缆(A和B可以是任何东西,硬盘,CPU,RAM,USB等)可以一次传输一位。 A和B都具有相同速率的时钟脉冲。在每个脉冲上,发送器改变每条线路的功率量,以表示新位的值。因此,电缆中的导线数=每个“脉冲”可以传输的位数。 (注意:这是一个非常简化的理论解释)。

在软件级别,在CPU中,您永远不能处理小于一个字节的任何内容。您可以通过使用按位运算符(&(AND),|(OR),<<(Left Shift),>>(右移),^(XOR))来“访问”和操作特定字节。

在硬件中,每个脉冲发送的位数完全取决于硬件本身。