C++ 中 int、short、long和long long 分别是几位?有符号无符号有什么区别?
在C++中,不同的数据类型表示不同范围的整数值。以下是各种整数数据类型的位数和范围:
-
int
: 通常为32位,表示带符号的整数,范围约为 -2,147,483,648 到 2,147,483,647。 -
short
: 通常为16位,表示带符号的短整数,范围约为 -32,768 到 32,767。 -
long
: 通常为32位,表示带符号的长整数,范围约为 -2,147,483,648 到 2,147,483,647。 -
long long
: 通常为64位,表示带符号的长长整数,范围约为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
这些整数数据类型可以是带符号的或无符号的,区别在于它们能够表示的范围和可用的位数。
-
带符号整数可以表示正数、负数和零。例如,
int
、short
、long
和long long
默认都是带符号的。 -
无符号整数仅可以表示非负数(包括零),因此它们的范围是从0到正的最大值。例如,
unsigned int
、unsigned short
、unsigned long
和unsigned long long
是无符号整数类型。
使用带符号整数和无符号整数的选择取决于你要表示的值的范围和性质。如果你知道数值将始终是正的,那么使用无符号整数可以提供更大的范围。但是请注意,在进行数学运算时,带符号和无符号整数之间可能会导致不同的行为,因此要小心处理。
在计算机科学中,"有符号"和"无符号"是用来描述整数数据类型的属性。
有符号(Signed):有符号整数类型可以表示正数、负数和零。它们使用一个位来表示数值的符号(正或负),而其余的位表示数值的大小。例如,有符号整数可以表示从负的最大值到正的最大值的范围。
无符号(Unsigned):无符号整数类型仅能够表示非负数(包括零)。它们不使用位来表示符号,而是将所有的位都用于表示数值的大小。因此,无符号整数的范围是从零到正的最大值。
例如,考虑一个8位二进制数:
- 有符号整数:最高位用于表示符号,剩余7位用于表示数值,所以可以表示的范围是 -128 到 127。
- 无符号整数:所有8位都用于表示数值,所以可以表示的范围是 0 到 255。
符号(Sign)在这里表示数值的正负。有符号整数使用一位来表示正负号,而无符号整数则不考虑符号,仅表示非负数值。在C++中,你可以通过在整数类型前面添加关键字 “signed” 或 “unsigned” 来指定整数是有符号还是无符号。例如:signed int
和 unsigned int
。如果不指定,默认情况下整数类型是有符号的。
对于8位二进制数:
有符号整数的范围是从 -128 到 127(共256个值)。
无符号整数的范围是从 0 到 255(共256个值)。
在有符号整数的情况下,最高位被用作符号位,所以它只能表示 -128 到 127,共有256个不同的可能值。而在无符号整数的情况下,所有8位都用于表示数值,可以表示从 0 到 255 共256个不同的可能值。
在不同的编译器和操作系统中,int
和 long
的位数可能会有所不同。我之前提到的位数仅是一种通常的情况,但实际上可以有变化。
在一些编译器和系统中,int
可能是32位,而 long
也可能是32位。这可能会导致一些混淆,因为在这种情况下,int
和 long
的范围是相同的。为了解决这个问题,C++11 引入了 long long
数据类型,它通常是64位的,用于表示更大范围的整数。
需要注意的是,C++标准并没有严格规定每种整数类型的位数,因此在不同的系统上可能会有所不同。编译器和操作系统可以根据目标平台的特性来选择适当的位数。如果你对特定系统中各种整数类型的位数感到困惑,可以查阅该系统的文档或编译器的规范。
相关文章:

C++ 中 int、short、long和long long 分别是几位?有符号无符号有什么区别?
在C中,不同的数据类型表示不同范围的整数值。以下是各种整数数据类型的位数和范围: int: 通常为32位,表示带符号的整数,范围约为 -2,147,483,648 到 2,147,483,647。 short: 通常为16位,表示带符号的短整数࿰…...

Killing LeetCode [82] 删除排序链表中的重复元素 II
Description 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 Intro Ref Link:https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/ Difficulty:Medium T…...

LeetCode 热题 100 JavaScript--283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出:…...

java读写ini文件
java读写ini文件 1、格式 INI文件由节、键、值组成。 节 [section] 参数 (键值) namevalue 例: [Total] num1 [Server] ip127.0.0.1 2、代码封装 import org.apache.commons.configuration.ConfigurationException; import org.apache.common…...

【ARM Coresight 系列文章 2.3 - Coresight 寄存器】
文章目录 Coresight 寄存器介绍1.1 ITCTRL,integration mode control register1.2 CLAIM寄存器1.3 DEVAFF(Device Affinity Registers)1.4 LSR and LAR1.5 AUTHSTATUS(Authentication Status Register) Coresight 寄存器介绍 Coresight 对于每个 coresight 组件&am…...

kafka:java client使用总结塈seek() VS commitSync()的区别(三)
最近一段日子接触了kafka这个消息系统,主要为了我的开源中间件项目simplemq增加kafka支持(基于kafka-client【java】),如今总算完成,本文是对这个过程中对kafka消息系统的使用总结 线程安全 关于线程安全,…...

如何用正确的姿势监听Android屏幕旋转
作者:37手游移动客户端团队 背景 关于个人,前段时间由于业务太忙,所以一直没有来得及思考并且沉淀点东西;同时组内一个个都在业务上能有自己的思考和总结,在这样的氛围下,不由自主的驱使周末开始写点东西&…...

mysql高级三:sql性能优化+索引优化+慢查询日志
内容介绍 单表索引失效案例 0、思考题:如果把100万数据插入MYSQL ,如何提高插入效率 (1)关闭自动提交,只手动提交一次 (2)删除除主键索引外其他索引 (3)拼写mysql可以执…...

HCIP VLAN--Hybrid接口
一、VLAN的特点 1、一个VLAN就是一个广播域,所以在同一个VLAN内部,计算机可以直接进行二层通信;而不同VLAN内的计算机,无法直接进行二层通信,只能进行三层通信来传递信息,即广播报文被限制在一个VLAN内。 …...

大数据开发面试必问:Hive调优技巧系列二
接上次分享的Hive调优技巧系列一: 数据倾斜、HiveJob优化 第1章 数据倾斜(重点) 绝大部分任务都很快完成,只有一个或者少数几个任务执行的很慢甚至最终执行失败,这样的现象为数据倾斜现象。 一定要和数据过量导致的…...

【C++】STL——list的模拟实现、构造函数、迭代器类的实现、运算符重载、增删查改
文章目录 1.模拟实现list1.1构造函数1.2迭代器类的实现1.3运算符重载1.4增删查改 1.模拟实现list list使用文章 1.1构造函数 析构函数 在定义了一个类模板list时。我们让该类模板包含了一个内部结构体_list_node,用于表示链表的节点。该结构体包含了指向前一个节点…...

vscode 插件::EIDE
最新最全 VSCODE 插件推荐(2023版)_vscode_白墨石-华为云开发者联盟 (csdn.net) 超好用的开发工具-VScode插件EIDE_vscode eide_桃成蹊2.0的博客-CSDN博客 Setup | Embedded IDE For VSCode (em-ide.com)...

Python 网络编程
Python 网络编程 Python 提供了两个级别访问的网络服务: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统 Socket 接口的全部方法。高级别的网络服务模块 SocketServer, 它提供了服务器…...

SQL 数据科学:了解和利用联接
推荐:使用 NSDT场景编辑器助你快速搭建可编辑的3D应用场景 什么是 SQL 中的连接? SQL 联接允许您基于公共列合并来自多个数据库表的数据。这样,您就可以将信息合并在一起,并在相关数据集之间创建有意义的连接。 SQL 中的连接类型…...

(统计学习方法|李航)第五章决策树——四五节:决策树的剪枝,CART算法
目录 一,决策数的剪枝 二,CART算法 1.CART生成 (1)回归树的生成 (2)分类树的生成 2.CART剪枝 (1)剪枝,形成一个子树序列 (2)在剪枝得到的子…...

C语言--结构体定义
整型数,浮点数,字符串是分散的数据表示,有时候我们需要很多类型表示一个整体,比如学生信息。 数组是元素类型一样的数据集合,如果是元素类型不同的数据集合,就要用到结构体 结构体一般是个模板,…...

解决Element Plus中Select在El Dialog里层级过低的问题(修改select选项框样式)
Element Plus是Vue.js的一套基于Element UI的组件库,提供了丰富的组件用于构建现代化的Web应用程序。其中,<el-select>是一个常用的下拉选择器组件,但在某些情况下,当<el-select>组件嵌套在<el-dialog>…...

【数据结构】二叉树 链式结构的相关问题
本篇文章来详细介绍一下二叉树链式结构经常使用的相关函数,以及相关的的OJ题。 目录 1.前置说明 2.二叉树的遍历 2.1 前序、中序以及后序遍历 2.2 层次遍历 3.节点个数相关函数实现 3.1 二叉树节点个数 3.2 二叉树叶子节点个数 3.3 二叉树第k层节点个数 3…...

【无标题】云原生在工业互联网的落地及好处!
什么是工业互联网? 工业互联网(Industrial Internet)是新一代信息通信技术与工业经济深度融合的新型基础设施、应用模式和工业生态,通过对人、机、物、系统等的全面连接,构建起覆盖全产业链、全价值链的全新制造和服务…...

人工智能在心电信号分类中的应用
目录 1 引言 2 传统机器学习中的特征提取与选择 3 深度学习中的特征提取与选择...

【Linux 网络】网络层协议之IP协议
IP协议 IP协议所处的位置网络层要解决的问题IP协议格式分片与组装网段划分特殊的IP地址IP地址的数量限制私网IP地址和公网IP地址路由 IP协议所处的位置 IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。 网络层要解决的问题 网络…...

.meta 文件
.meta 文件的作用简单来说是建立 Unity 与资源之间的“桥梁”。 在游戏中引用一个游戏资源,Unity 并不是直接按照文件的路径或者名称,而是使用一个独一无二的 GUID 来指向工程里该资源文件。 这个 GUID 就是存储在 Unity 工程为每一个资源和文件…...

CRITICAL_SECTION 用法
#include <stdio.h> #include <windows.h> typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; CRITICAL_SECTION g_cs; //声明关键段 // 共享资源 char g_cArray[10]; unsigned int g_Count 0; DWORD WINAPI ThreadProc10(LPVOID pParam) { // 进入临界区 …...

汇川运动控制产品故障排查
针对汇川伺服产品(IS600/IS620)的基本检测和一些出现频率较高的故障进行检测判断方法,适用于服务人员在现场排查/判断机器故障时,准确定位问题。 一、简单故障排查 注1:接线错误:1、UVW相序是否正确&#…...

【Groups】50 Matplotlib Visualizations, Python实现,源码可复现
详情请参考博客: Top 50 matplotlib Visualizations 因编译更新问题,本文将稍作更改,以便能够顺利运行。 1 Dendrogram 树状图根据给定的距离度量将相似的点组合在一起,并根据点的相似性将它们组织成树状的链接。 新建文件Dendrogram.py: …...

windows安装kafka配置SASL-PLAIN安全认证
目录 1.Windows安装zookeeper: 1.1下载zookeeper 1.2 解压之后如图二 1.3创建日志文件 1.4复制 “zoo_sample.cfg” 文件 1.5更改 “zoo.cfg” 配置 1.6新建zk_server_jaas.conf 1.7修改zkEnv.cmd 1.8导入相关jar 1.9以上配置就配好啦,接下来启…...

【Linux】五种IO模型
文章目录 1. IO基本概念2. 五种IO模型2.1 五个钓鱼的例子2.2 五种IO模型2.2.1 阻塞IO2.2.2 非阻塞IO2.2.3 信号驱动IO2.2.4 IO多路转接2.2.5 异步IO 1. IO基本概念 认识IO IO就是输入和输出,在冯诺依曼体系结构中,将数据从输入设备拷贝到内存就叫输入&am…...

SCT82A30DHKR_5.5V-100V Vin同步降压控制器
SCT82A30是一款100V电压模式控制同步降压控制器,具有线路前馈。40ns受控高压侧MOSFET的最小导通时间支持高转换比,实现从48V输入到低压轨的直接降压转换,降低了系统复杂性和解决方案成本。如果需要,在低至6V的输入电压下降期间&am…...

备忘录模式(C++)
定义 在不破坏封装性的前提下,捕获一-个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 应用场景 ➢在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要…...

二叉排序树(二叉查找树)
二叉排序树(二叉查找树)的性质: 若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值。若它的右子树不为空,则右子树上所有结点的值均大于它的根将诶点的值。它的左、右子树也分别为二叉排序树。 对二叉…...