在《WINDOWS程序设计》第十五章里面讲到:以字节为单位一个DIB每行的长度的计算公式: RowLength = 4 * ((bmch.bcWidth * bmch.bcBitCount + 31) / 32) ;当我读到这里的时候产生一个疑问:为什么一定要是4个字节(又或为什么一定要是32位)?为什么不是64位?或者为什么不直接按本身的大小来操作呢?当你看到32,64位的时候你有没有想到我们使用的操作系统,我们的平时使用的操作系统不就是32或64位的吗,这其中有什么关系吗?
是的,就是因为操作系统的原因。当使用32/64位操作系统的时候,计算机每次读/写一次的单位就是32/64。这就很明了了,不把长度规范为32位/64位,当本身长度不是4字节的倍数时,读取的时候就会产生额外的计算(比如每次读取一个字节)。