1、数据类型、byte、bit
编程中遇到很多数据类型,有int,char,float,bool等等。
数据类型往下是字节byte,比如一个int有4个byte大小,一个字符是一个byte,一个汉字是两个byte。
再往下,一个字节是4位bit。
一台机器的编译器可以是16位,或者是32位,所以int类型的大小就是不同的。除最高位的0表示正数,1表示负数外,那么最大值就是剩余位数全部为1。
所以int有最大值,再大的话就就超出了32bit操作系统的最大处理范围,溢出。
操作系统和CPU是不同的。比如说64位的CPU,但是由于安装的是32位操作系统,每次也只能处理32bit的数据,所以发挥不了64位CPU的优势。
2、寻址空间(地址空间)
32位的CPU和操作系统,一次可以处理4个byte的数据,每个数据8个bit,所以理论上存在32根地址线。
每个bit有0、1两条线路,所以理论上存在2^32的地址信息,也就是内存大小4G。
每一个物理存储空间分配一个编址,便于找到他,完成数据的读写。
对一个32bit的int12345678而言,由于是4个byte,32bit来存放的,所以按照规定(我也不知道哪里来的固定)分成4部分物理地址存放,分别是0X78 0X56 0X34 0X12。
物理地址的编号有大小,比如0x4000 0x4001 0x4002 0x4003
当高位的0X78位于高物理地址0x4003,其余依次降低,这种称为大端big-endian;当0X78位于低物理地址0x4000&