处理器,操作系统,程序的位数,指针的长度
2015-06-13 18:16
525 查看
人们熟知的操作系统有X86(32位)和X64(64位)之分,而且X86的系统能识别的内存是没法超过4G的。
1.处理器位数
其实处理器也有X86,X64之分。
X86处理器是8086,80286,80386和80486等等处理器的一个总称。
在此之前,英特尔公司已经发布过4004,8008,8080,8085等处理器,然而之前这些处理器都是8位的。
从8086和80286开始就是16位的CPU,80386和80486是32位CPU;80486还多了数学辅助处理器,增强了复杂的数学运算能力。
其后的系列就改称奔腾了,也就是人们熟悉的单核时代,一直到酷睿2双核时代的部分处理器都是32位的,
而之后的I5,I7系列现在大家装机基本上也就是这些处理器,基本上也都是64位的处理器了。
32位的处理器是不能装64位系统的,不过不用担心,现在常用的个人PC的处理器基本上都是64位的,现在要找一个32位的处理器出来还真有点不好找。
如何查看自己电脑的CPU和系统是多少位的:
在开始-运行-cmd
输入命令:systeminfo回车
如图1:
图1 这个电脑上面装的是X86(32位)的系统和X64(64位)的处理器
如图2:
这个电脑上面装的是X64(64位)的系统和X64(64位)的处理器
2.操作系统位数
32位的处理器只搭配32位的系统,
32位的处理器的地址总线是32根,
2的32次方=4294967296,4294967296/1024/1024/1024=4G
所以32位处理器搭配32位的系统只有4G内存可被识别
同理64位处理器虽然能用32位系统但也只能访问4G内存虚拟模式
总结:
64位处理器+64位系统 可以
64位处理器+32位系统 可以
32位处理器+64位系统 不可以
32位处理器+32位系统 可以
3.而应用程序也有X86和X64之分
平常我们在VC6.0和VS上面编写的程序,默认配置是X86(32位)程序,然而我们的X64系统却能运行,因为是向下兼容的,如果在X86系统上运行X64程序就是会报错的:
总结:
64位系统能运行64位和32位程序
32位系统不能运行64位程序
4.关于指针长度
总的来说,首先CPU的位数限定了指针的长度上限,不过现在一般都是64位CPU。
所以接着看操作系统的位数限定了指针的长度上限,
32位系统跑32位程序是4字节指针,但跑不了64位程序。
64位系统可以跑64位程序8字节指针,也可以跑32位程序4字节指针。
当然实际上一句话概括,当前指针大小由当前CPU运行模式的寻址位数决定。这句话很准确,但却是一句正确的废话,所以建议自己罗列一下各种情况才能更清楚一点。
1.处理器位数
其实处理器也有X86,X64之分。
X86处理器是8086,80286,80386和80486等等处理器的一个总称。
在此之前,英特尔公司已经发布过4004,8008,8080,8085等处理器,然而之前这些处理器都是8位的。
从8086和80286开始就是16位的CPU,80386和80486是32位CPU;80486还多了数学辅助处理器,增强了复杂的数学运算能力。
其后的系列就改称奔腾了,也就是人们熟悉的单核时代,一直到酷睿2双核时代的部分处理器都是32位的,
而之后的I5,I7系列现在大家装机基本上也就是这些处理器,基本上也都是64位的处理器了。
32位的处理器是不能装64位系统的,不过不用担心,现在常用的个人PC的处理器基本上都是64位的,现在要找一个32位的处理器出来还真有点不好找。
如何查看自己电脑的CPU和系统是多少位的:
在开始-运行-cmd
输入命令:systeminfo回车
如图1:
图1 这个电脑上面装的是X86(32位)的系统和X64(64位)的处理器
如图2:
这个电脑上面装的是X64(64位)的系统和X64(64位)的处理器
2.操作系统位数
32位的处理器只搭配32位的系统,
32位的处理器的地址总线是32根,
2的32次方=4294967296,4294967296/1024/1024/1024=4G
所以32位处理器搭配32位的系统只有4G内存可被识别
同理64位处理器虽然能用32位系统但也只能访问4G内存虚拟模式
总结:
64位处理器+64位系统 可以
64位处理器+32位系统 可以
32位处理器+64位系统 不可以
32位处理器+32位系统 可以
3.而应用程序也有X86和X64之分
平常我们在VC6.0和VS上面编写的程序,默认配置是X86(32位)程序,然而我们的X64系统却能运行,因为是向下兼容的,如果在X86系统上运行X64程序就是会报错的:
总结:
64位系统能运行64位和32位程序
32位系统不能运行64位程序
4.关于指针长度
总的来说,首先CPU的位数限定了指针的长度上限,不过现在一般都是64位CPU。
所以接着看操作系统的位数限定了指针的长度上限,
32位系统跑32位程序是4字节指针,但跑不了64位程序。
64位系统可以跑64位程序8字节指针,也可以跑32位程序4字节指针。
当然实际上一句话概括,当前指针大小由当前CPU运行模式的寻址位数决定。这句话很准确,但却是一句正确的废话,所以建议自己罗列一下各种情况才能更清楚一点。
相关文章推荐
- 腾讯-信鸽实现消息推送
- redis 应用场景
- 随机点云遍历构造成树
- SGU129 Inheritance
- 大概知道 ParameterSet 是什么意思了
- 关于设计模式中的继承与组合
- Centos 7安装XFCE桌面
- 控制台模拟电梯工作原理
- Effective C++条款11解读: 在operator=中处理“自我赋值”------顺便给出string类的Big Three
- Android 性能分析案例
- IE11 经常崩溃的一个解决方法
- 在Spring MVC中,事务可以加在Controller层
- 杂记
- 苏宁工作一月总结
- [leetcode][math] Basic Calculator
- 用qsort对字符串数组排序需要注意的几个问题
- JS操作GridView,JS获取table的td中的值跟控件
- shell脚本获得本机ip地址
- oracle 11g系列 用户管理实验报告
- Matlab与C++混合编程