判断是32位还是64位操作系统

最近有朋友问我如何判断操作系统是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的字节大小不一样,我们可以通过计算指针类型的大小来计算是哪个操作系统即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值