一.计算机数据存储的基础知识
1.计算机存储器的基本单位 :
计算机中最小的存储单元是bit,也叫做位,表示两种状态,可以存储1或者0,它存在于物理内存上。
计算机使用8bit的块来作为最小可寻址的存储单位,这个存储单位叫做字节(Byte)。
从程序的视角来看,内存是一个非常大的字节数组,程序的虚拟地址即为每个子节在数组中的下标。
2.什么是机器字(word)?
一般来说,机器字是cpu内部总线的宽度。平常说的32位机和64位机,指的就是计算机机器字的长度
机器字长度决定了cpu一次运算能够处理数据的最大宽度,一般也决定了cpu所能访问内存的地址范围。
例如,32位机器字长的cpu一次传输的数据能表示的范围是0~2^32-1Byte,
那么如果想传输一次地址就能访问内存的话,内存的大小就不能超过这个范围,
这个范围就是我们平常说的程序的地址空间0~4G
机器字长对程序来说意味着什么?
举例来说,当程序prog.c被编译成32位程序时,可以在32位或者64位机器上运行
(大多数64位机器也可以运行32位机器编译的程序,这是一种向后兼容。)
当它被编译成64位程序时,那就只能在64位机器上运行。
因此,当我们将程序称为“32位程序”或者“64位程序”时,区别在于该程序是如何被编译的。
3.存储数据的字节顺序(大端和小端)
考虑我们要存储一个跨越多个字节的数据,例如int型数据。
为了我们能够正确的取出这个数据&#x