计算机的字长,是一个重要的概念。 字长通常是指: “处理器” 的一次操作所能处理二进制数的位数。 一般来说,字长就是指 CPU 中的累加器、寄存器、ALU、数据总线的位数。 这个位数,通常是 8 的整数倍,如:8、16、32、64。 以这种 CPU 为核心的计算机,就分别称为:8 位机、16、32、64 位机。
翻开《计算机组成原理》之后,好像对字长,有些淡化了,经常提到的,却是 n。 比如下图的说法。
字长为 5? 5,这个数,真是个奇葩。 哪有这种字长的计算机或 CPU !
另外,n = 4,n 又是神马东西呢? 计算机性能指标中,好像没有这个符号。
常见的参数有:字长、主频、内存大小、硬盘容量、接口类型、操作系统版本 ... 。
这里边,哪有什么 n !
真让人感到怀疑,《计算机组成原理》所讲的,真是计算机吗?
对于现代计算机来说,字长,有点大了,32 个、64 个 1 或 0 ! 看着眼花缭乱。
一般教学,通常都是用:8 位机。 虽然这种机器太落后了,基本上不用了,也难以找到了,但是,用于理论教学,还是非常恰当的。
字长为 8,即每次处理,就是 8 位二进制数。 如果是乘法,就是两个 8 位数相乘,即:8 位数 × 8 位数,那么,乘积,必然就是 16 位数,即使不够 16 位,也必须得按照 16 位来讲解。 另外,讲解除法运算时,如果除数是 8 位,被除数就应该是 16 位数。
在前面的插图中,x、y 都是 5 位数,在其后面,是要求做除法运算,求 x / y = ? 这就显得外行了吧? 5 位数除以 5 位数? 这也不配套啊! 哪能这样出题啊!
下面再看看《计算机组成原理》所讲的乘法运算吧。
有一个 n 位 × n 位的无符号数乘法器,乘积,就是 2n 位。
如果有两个带符号数,字长都是 (n + 1) 位。
带