如何用C++判断一个系统是16位、32位还是64位?

这篇具有很好参考价值的文章主要介绍了如何用C++判断一个系统是16位、32位还是64位?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何用C++判断一个系统是16位、32位还是64位?
方法一:使用指针的sizeof()判断

#include <iostream>
using namespace std;

int main()
{
	int *p = nullptr;
	
	if(sizeof(p) == 8)
	{
        cout << "64 bits system" << endl;
	}
	else if(sizeof(p) == 4)
	{
		cout << "32 bits system" << endl;
	}
	else if(sizeof(p) == 2)
	{
		cout << "16 bits" <<endl;
    }
	else
	{
		cout << "unknown system" << endl;
	}

	return 0;
}

方法二:使用整数溢出来判断
不同系统的基本数据类型的字节长度区别,如下表:

平台/类型 char short int long long long
16位 1 2 2 4 8
32位 1 2 4 4 8
64位 1 2 4 8 8
#include <iostream>
using namespace std;

int main()
{
	int test = (1 << 15);
	if(test > 0)
	{
		int test_2 = (1 << 31);
		if(test_2 > 0)
		{
			cout << "64 bits system" <<endl;
		}
		else
		{
			cout << "32 bits system" << endl;
		}
	}
	else
	{
		cout << "16 bits system" << endl;
	}
	return 0;
}

方法三:使用预定义宏来判断文章来源地址https://www.toymoban.com/news/detail-849727.html

#include <iostream>
using namespace std;

int main()
{	
    #ifdef __x86_64__
	{
        cout << "64 bits system" << endl;
	}
    #elif defined __x86_32__
	{
		cout << "32 bits system" << endl;
	}
    #elif defined __x86_16__
	{
		cout << "16 bits" <<endl;
    }
	#else
	{
		cout << "unknown system" << endl;
	}
	#endif
	return 0;
}

到了这里,关于如何用C++判断一个系统是16位、32位还是64位?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ 判断路径为文件夹还是文件

    头文件 Path   指定标识文件的路径名。根据所使用的接口,此名称的解释不同。如果指定了DirFileDescriptor并且Path是一个相对路径名,那么Path被认为是相对于DirFileDescriptor指定的目录的。 Buffer 指定指向在其中返回信息的状态结构的指针。stat结构在sys/stat.h文件中描述。 成功完

    2024年02月01日
    浏览(172)
  • 【金融量化】如何判断一个基金是不是主动型基金还是被动型基金?

    主动型基金是指由基金经理或管理团队根据市场行情、个股研究等主观因素进行投资决策的基金,其资产配置和投资组合均由基金经理通过主动选股、择时等方式加以调整。 被动型基金则是指根据某个指数进行投资的基金,其资产配置和投资组合均是模拟指数所投资的资产,

    2024年02月11日
    浏览(44)
  • FP64、FP32、FP16、FP8简介

    目录 1、单精度浮点数FP32的表示 2、半精度浮点数FP16的表示 3、双精度浮点数FP64的表示 4、FP8 5、写在最后 1、单精度浮点数FP32的表示 浮点数由三部分组成:符号位、指数部分、尾数部分 以单精度浮点数为例,如图所示,符号位为1bit、指数位8bit、尾数位23bit 表达方式如下:

    2024年02月02日
    浏览(36)
  • 查看mac是macOS x64还是macOS ARM64系统

    打开终端输入:

    2024年02月15日
    浏览(48)
  • Ubuntu64位系统(20.04、22.04)安装32位armQT4开发环境补充说明

    在一些特定场景下我们可能需要在更高版本ubuntu上(比如Ubuntu20.04、Ubuntu22.04)安装 Qt 4,维护和开发32位armQT4应用程序。 对于高版本ubuntu, 官方对Qt 4 已经不再提供维护,因此需要解决许多兼容性问题。我们前面博文《Ubuntu64位系统(v18.04)下arm32位版本(Qt4.8.6和tslib1.4)开发环境搭建

    2024年02月14日
    浏览(71)
  • uniapp开发小程序-如何判断小程序是在手机端还是pc端打开

    官方说明 https://developers.weixin.qq.com/miniprogram/dev/devtools/pc-dev.html 小程序如何判断是 PC 平台? 通过 getSystemInfo 官方接口(platform 是 windows) 通过 UA(PC UA 包含 MiniProgramEnv/Windows) App.vue 判断是否是pc端的函数(如果宽度足够也视为pc端) 同时值得注意的是,微信开发者工具的

    2024年02月04日
    浏览(47)
  • 如何判断 vite 的运行环境是开发模式还是生产模式 production? development?

    vite 有两种获取当前运行环境模式的方法: 官方说明: 完整说明地址: https://cn.vitejs.dev/guide/env-and-mode.html#node-env-and-modes 比如我在开发模式和生产模式的请求地址不一样,我是这么用的:

    2024年01月22日
    浏览(55)
  • 确定Mac\Linux系统的架构类型是 x86-64(amd64),还是 arm64 架构

    我们在下载软件或镜像时会有很多版本,那需要根据我们的系统架构选择正确的软件或镜像版本。 要确定你的系统使用的是 x86-64(amd64) 还是 arm64 架构,可以使用以下方法之一: 使用 uname 命令: 打开终端,并运行以下命令: 在MAC中: 如果输出结果是 x86_64 ,则表示你的系

    2024年02月08日
    浏览(45)
  • 【C++】如何用C++写一个日期计算器

    目录 前言 代码的布局 设计数据 方法声明 方法的实现 获取某年某月的天数 *全缺省的构造函数 * 拷贝构造函数 *赋值运算符重载 *析构函数 日期+=天数 日期+天数 日期-天数 日期-=天数 前置++ 后置++ 后置-- 前置-- 实现比较大小运算符重载思路 运算符重载 ==运算符重载 *  = 运算

    2024年04月23日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包