当我阅读以下摘录时,我正在通过The Elements of Computing Systems:
Hack计算机包括一个组织为256的黑白屏幕 每行512像素的行。屏幕的内容用表示 8K存储器映射,从RAM地址16384(0x400)开始。每一行 在物理屏幕上,从屏幕的左上角开始,是 RAM由32个连续的16位字表示。因此像素在 从顶部开始的行r和从左开始的列c映射在c%16上 位于RAM [16384 + r *]的字的位(从LSB到MSB) 32 + c%16]。要写入或读取物理屏幕的像素,一个 读取或写入RAM驻留存储器映射中的相应位 (1 =黑色,0 =白色)。
所以,如果屏幕是256行512像素,并且每个像素是一个比特,那么整个屏幕的8K内存映射怎么样?
256行* 512位= 131072/8位/字节/ 1024字节/ K = 16K
这不是16K的内存映射吗?
我唯一能想到的是因为字大小是16位,这可能是一个因素吗?我一直都知道“字节”意味着8位,但如果它的定义取决于计算机的字大小,那么这对我来说可能会解开这个谜团。有人可以向我解释该段落中描述的屏幕是如何用8K存储器地图而不是16K表示的吗?
答案 0 :(得分:15)
是的,现代计算中的字节总是8位。
这本书使用的是单词,而不是字节
在书中,明确提到了单词和单词的大小,而没有关于字节的单词(haha)。看一下短语..is represented in RAM by 32 consecutive 16-bit words.
。整个大小用(16位)字表示,而不是字节。
因此,8K指的是8个Kilowords。 8千字节将正式写成8KB,如果在本书中完全使用该符号。
在处理器架构方面,单词非常重要。编程语言中的单词通常是2个字节(或16位),但在处理器体系结构中,它们也可以是8位或32位,它们指的是处理器工作的数据单元的自然大小,因此有意义的是这本书使用的是单词而不是字节,因为文本似乎非常面向硬件。
要了解字节和字词的相关性,请阅读this answer。
不同的字节大小
Wikipedia描述了一个字节最初是如何(20世纪60年代)基于它需要保存的信息的大小,所以6位字节可以用于(英语)字符,而其他大小的字节将被使用对于不同的数字格式。它最初为6位英文字符,增长到7位以支持ASCII,最终8位IBM System / 360的普及导致全球接受8位字节。
字节是表示数据量的软件单元,而字更多地依赖于处理器/存储器架构,并且表示处理器中的工作单元(寄存器)和存储器中的可寻址单元。 如今,一个字节总是被认为是8位,而字是其中的倍数。仍然有处理器具有不同的字大小,但那些是专用处理器。从PC到手机和游戏机的普通硬件都符合标准。
答案 1 :(得分:0)
用现代术语来说,字节总是有8位。自1993年以来,这就是IIRC。 ISO / IEC 2382-1:1993。
然而,也有一些系统将其他位数计数到一个字节是6位/ 7位。但是,还有其他更晦涩的地方。
最终,我认为今天很难找到一种不是基于8位到一个字节的机器。
答案 2 :(得分:-6)
除了造币后的短暂时期,一个字节一直是8位。
短语'一千字节'因为你有一个千位字(1024个可寻址的部分)的存储器是八位宽的,并且每个都可以寻址,所以它被普及为8千克。这件事是8位。
这个词并不总是八位,但是当它不是时,它从未被称为'八,'四是'或者在十六岁以上,或者在一些Burroughs簿记机器的特殊例子中,一百二十八个。在另一个极端,霍尼韦尔的机器最初是有组织的,所以存储中的每个位都有一个独特的地址,所以他们将拥有如此多的“一公斤”。记忆包。
对于你所说的机器,它会有#8; 8千克乘16"内存,因此是8K内存映射,特别是8Kx16,其中只有8192个地址,每个地址为16位。
对于ASCII和EBCDIC,最便宜的是具有8位地址边界,用于高效的文本处理,即使您的机器的寄存器更宽。登记册较窄的机器就灭绝了。
所以,是的,一个字节IS总是八位,几乎总是如此。