32位和64位操作系统的区别
32位,64位是指: 使用32/64个比特来标识内存地址,32/64位长度的内存地址标识;
CPU可以直接访问内存,因为内存条为每个 字节 都标识了一个内存地址,这个地址是由32/64个二进制数组成的,类似数组下标;
最多可以标识的地址数量为:
32位: 2^32 = 2^2 * 1024(G) * 1024(M) * 1024(K) = 4294967296 个, 就是4G 字节。(0x00000000 ~ 0xFFFFFFFF)
64位: 2^64 = 2^34 * 1024(G) * 1024(M) * 1024(K) = 18446744073709551616 个, 就是171 7986 9184G(172亿G) 字节。(0x0000000000000000 ~ 0xFFFFFFFFFFFFFFFF)
指针是用来存放内存地址的:
对于32位系统来讲,1个指针需要4byte的内存来存放该指针的内容(1个内存地址)。int *p;sizeof(p) == 4;
对于64位系统来讲,1个指针需要8byte的内存来存放该指针的内容(1个内存地址)。int *p;sizeof(p) == 8;