admin 管理员组文章数量: 1184232
最近有朋友问我如何判断操作系统是32位还是64位的,我当时没反应过来该怎么判断(当然肯定不是直接看电脑属性的那种判断),下面查询了很多资料,发现很多人都是利用这段代码类似的方法来判断的:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
SYSTEM_INFO si;
GetNativeSystemInfo(&si);
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
si.wProcessorArchitecture != PROCESSOR_ARCHITECTURE_IA64 )
{
//64 位操作系统
cout<<64<<endl;
}
else {
// 32 位操作系统
cout<<32<<endl;
}
getchar();
}
但是说实话我真的搞不懂中间哪些代码是干嘛的?但这个的确是一个方法。
大家看看我下面的总结的这套方法,不知道能不能帮助到大家,里面也有我看别人的一些资料,希望大家参考下:
首先我们得了解到64位操作系统和32位的区别:
一、64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大牛拉小车”:64位效能就会大打折扣。
二、64位CPUGPRs(General-PurposeRegisters,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说
处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。
三、32位64位操作系统基本数据类型字节大小不同,比如:
32位操作系统 64位操作系统
char :1个字节 char :1个字节
*(指针变量): 4个字节 *(指针变量): 8个字节
int: 4个字节 int: 4个字节
float: 4个字节 float: 4个字节
double: 8个字节 double: 8个字节
long: 4个字节 long: 8个字节
long long: 8个字节 long long: 8个字节
我们会发现最主要的差别是指针变量的大小不一样,其次就是long的字节大小不一样,我们可以通过计算指针类型的大小来计算是哪个操作系统即可。
版权声明:本文标题:32位或64位?通过简单测试识别你的系统版本 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1773474718a3562351.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论