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

法一:利用sizeof

可以使用sizeof计算int的字节长度来判断是32位还是16位。

32位机器下:sizeof(int) = 4;16位机器下:sizeof(int) = 2

但是实际中可能64位的机器sizeof(int)也是4字节,因为很多时候是编译器决定要占用几个字节

法二:利用最大值

1. 机器位数不同则表示的数字的最大值是不同的。

    32位机器下int的最大值为2147483647,16位机器下int的最大值是32767

2. 我们可以利用最大值是否溢出情况来判断

    定义一个变量num赋值32768,如果是16位机器这个时候超过了int最大值变成了-32768,如果是32位机器不会超过

int main(){
    //判断机器是16位还是32位
    int num = 32768;
    if(num > 32767){
        printf("32位机器\n");
    }
    else{
        printf("16位机器\n");
    }
    return 0;
}

法三:对0取反

1. 32位机器下无符号整型的数值范围是[0,4294967295],16位机器下无符号整型的范围是[0,65535]

2. 0的二进制是所有位都是0

    32位下对0取反的结果是所有位都是1,如果把这个数赋值给一个无符号整型变量num,则num值为4294967295

    16位下对0取反的结果是所有位都是1,如果把这个数赋值给一个无符号整型变量num,则num值为65535

3. 利用对0取反后的结果赋值给无符号整型变量来判断值是否大于65535即可

int main(){
    unsigned int num = ~0;
    if(num > 65535){
        printf("32位机器");
    }
    else{
        printf("16位机器");
    }
    return 0;
}
时间: 2024-11-16 18:03:25

判断操作系统是16位还是32位的相关文章

VB实现的16位和32位md5加密代码分享_vb

在各种登陆系统中,用户密码的md5加密是不可少的. 这么说吧,即使你通过各种手段看到了用户的登陆密码,但那一串古古怪怪的东西你也不可能知道它是什么,这就是保护. md5加密运算是不可逆的,就是说你不能通过那一串古古怪怪的东西算出它原始的样子. 下面是完整的md5代码,不要去理解算法了,用到时拿去直接调用. Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WORD

Windows 7选择64位还是32位?

经过了一段时间的试用,我终于又把操作系统从Win7 64bit换回了Win7 32bit .说说我的心路历程. 1) 内存 64bit的Win7可以充分利用所有4GB的内存, 不再像Win7 32bit那样显示说系统安装内存4GB,其中3.5GB可用.(Vista更烂, 只显示3.5GB内存).(嘿嘿,开心,没浪费内存) 2) 兼容性 Win7下的各个 硬件设备驱动程序貌似没太大问题,显卡.网卡等关键设备也都工作正常(不错 ,心里继续乐).不过专门的64bit应用程序不多,只有谷歌拼音输入法64

windows7旗舰版64位和32位的区别有哪些

windows7旗舰版64位和32位的区别有哪些   目前我们使用的均是WIN7系统,如果是大于4GB内存的装机用户需要注意下系统是多少位的情况了.如果是大于4GB内存的用户,应该装windows7 64位系统.但是得考虑到CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度是否达到64位.如果是双核以上的CPU都可以装64位的系统.反之还是选择 windows7 32位. windows7旗舰版32位和64位四个区别: 区别一:处理数据的能力 32位计算

win7系统64位跟32位的哪个好,该如何选择

win7系统有很多版本,家庭版.高级版.旗舰版,而今天我们要说的是win7旗舰版系统64位跟32位的区别; 不管win7系统也好,win8系统也好,server 2003等,甚至是XP系统都有 32位跟64位之分. 既然win7系统现在已经是主流的电脑操作系统了,今天我们重点讲讲win7系统32位64位区别及选择,其实系统大体上也差不多的. 我相信到现在还是有很多的用户不知道32位跟64位win7系统的区别,甚至吧自己在用的系统也不知道是几位的,其实很简单,我们右键点击桌面"计算机"图

win7旗舰版系统64位跟32位的区别,该如何选择

win7系统有很多版本,家庭版.高级版.旗舰版,而今天我们要说的是win7旗舰版系统64位跟32位的区别; 不管win7系统也好,win8系统也好,server 2003等,甚至是XP系统都有 32位跟64位之分. 既然win7系统现在已经是主流的电脑操作系统了,今天我们重点讲讲win7系统32位64位区别及选择,其实系统大体上也差不多的. 我相信到现在还是有很多的用户不知道32位跟 64位win7系统 http://www.xitonghe.com 的区别,甚至吧自己在用的系统也不知道是几位的

32 64位运行效率-64位,32位windows上的相同程序,运行效率到底区别有多大?

问题描述 64位,32位windows上的相同程序,运行效率到底区别有多大? 64位,32位windows上的相同程序,运行效率到底区别有多大?分别在对应的版本下编译并运行. 解决方案 看什么样的程序.如果是科学计算程序,比如用到很多64位的四则运算,那么显然32位机器要想做同样的工作,需要3.4倍的指令才能完成,那么64位的优势是明显的. 可以举一个例子.你可以运行Windows XP和Windows XP x64版本下的计算器(calc.exe),执行高级运算中的阶乘.计算一个比较大的数,比

查看系统是64位还是32位

查看系统是64位还是32位: 0>$ uname -m          若是i386 或 i686 则是32位kernel          x86_64 则是 64位kernel 1.getconf LONG_BIT or getconf WORD_BIT 例如: 如何查看Linux系统是64位还是32位 - 冷月夜2008 - 冷月夜2008的博客 2.file /bin/ls 例如: 如何查看Linux系统是64位还是32位 - 冷月夜2008 - 冷月夜2008的博客 查看linux的

php md5下16位和32位的实现代码_php技巧

复制代码 代码如下: <?php   echo substr(md5("admin"),8,16);  // 16位MD5加密   echo "<hr>";   echo md5("admin");    // 32位MD5加密   ?>      16位的MD5加密用substr函数截取了字符得到实现....  不想深入研究了 :)  要把脑力放到其他关键的地方~~  今天做了个php链接mssql数据库,数据库中的表中

asp.net中MD5 16位和32位加密函数_实用技巧

public string md5(string str,int code)   {    if(code==16) //16位MD5加密(取32位加密的9~25字符)    {     return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower().Substring(8,16) ;    }     else//32位加密    {