看了 OP 的帖子回复我也没怎么理解 OP 到底是怎么想的。希望 OP 能多说说你是怎么想的。否则有种无从下手的感觉。我尝试答一下吧,可能跟 OP 想要的答案有区别。
从地址为 0 的地址取一个 64 位的数据就是将内存地址为 0 到 7 的八个内存单元的数据整体传输到 CPU 。
从地址为 0 的地址取一个 32 位的数据就是将内存地址为 0 到 3 的四个内存单元的数据整体传输到 CPU 。
从地址为 1 的地址取一个 32 位的数据就是将内存地址为 1 到 4 的四个内存单元的数据整体传输到 CPU 。
从上面的例子来看,第一个和第三个的地址不同,但是存储单元有重合。不知道算不算你说的多个地址指代的是一个存储单元。
数据传输到 CPU 后最终会存入寄存器。寄存器是有多种位数的,另外一个更长的寄存器好像还可以拆成多个短的寄存器用。存入寄存器的数据经过运算后可以再存回内存。过程与从内存取类似。
总之 8 位是一个内存单元的位数,32 位或者 64 位一般是 CPU 一次能运算的位数。一般 CPU 一次只能读取指定位数的数据到寄存器,具体多少我没去查。如果一次存取不行可能会多次。考虑到类似 SIMD 的特性可能还会有变化。
或者说 8 位是内存能一次存取的最小单元,也是寻址的最小单元。某些单片机上好像能一次存取一位,但是地址好像不是以一位为一个单元的。而 SSD 一次只能存取很大的一块。我搜了一下好像是好几百 KB 。不知道把不同的存储器对比一下能不能让 OP 更好理解一点。
考虑到缓存之类的东西上面说的跟实际发生的可能有一定区别,但是应该符合真空中的球形电脑。可能有错误地地方,毕竟我只是个野生程序员。
如果还是不懂建议看看《编码》(
https://book.douban.com/subject/4822685/ )吧。