signed int 数据范围_整型数据
1、整型数据的分类
(1)基本整型(int型)
编译系统分配给int型数据2个字节或4个字节(由具体的C编译系统自行决定)。如Turbo C 2.0为每一个整型数据分配2个字节(16个二进制位),而Visual C++为每一个整型数据分配4个字节(32位)。在存储单元中的存储方式是:用整数的补码形式存放。一个正数的补码是此书的二进制形式,如5的二进制形式是101,如果用两个字节存放一个整数,则在存储单元中数据形式如图1所示。如果是一个负数,则应先求出负数的补码。求负数的补码的方法是:先将此数的绝对值写成二进制形式,然后对其后面所有各二进位按位取反,再加1.如-5的补码见图2.
在存放整数的存储单元中,最左面一位是用来表示符号的,如果该位为0,表示数值为正;如果该位为1,表示数值为负。
(2)短整型(short int)
类型名为short int或short。如用Visual C++ 6.0,编译系统分配给int数据4个字节,短整型2个字节。存储方式与int型相同。一个短整型变量的值的范围是-32768~32767.
(3)长整型(long int)
类型名为long int或long。一个long int型变量的值的范围是2e31~(2e31-1),即-2147483648~2147483647(Visual C++ 6.0),编译系统分配给long数据4个字节。
(4)双长整型(long long int)
类型名为long long int或long long,一般分配8个字节。这是C99新增的类型,但许多C编译系统尚未实现。
2、整型变量的符号属性
以上介绍的几种类型,变量值在存储单元中都是以补码形式存储的,存储单元中的第1个二进制代表符号。整型变量的值的范围包括负数到正数。
在实际应用中,有的数据的范围常常只有正值,为了充分利用变量的值的范围,可以将变量定义为“无符号”类型。可以在类型符号前面加上修饰符unsigned,表示指定该变量是“无符号整数”类型。如果加上修饰符signed,则是“有符号类型”。因此在以上4种整型数据的基础上可以扩展为以下8种整型数据。即:
以上有“*”的是C99增加的,方括号表示其中的内容是可选的,既可以有,也可以没有。如果既未指定为signed也未指定为unsigned的,默认为“有符号类型”。如signed int a和int a等价。
有符号整型数据存储单元中最高代表符号(0为正,1为负)。如果指定unsigned(为无符号)型,存储单元中全部二进位(b)都用作存放数值本身,而没有符号。无符号型变量只能存放不带符号的整数,如123,4687等,而不能存放负数,如-123,-3.由于左面最高位不再用来表示符号,而用来表示数值,因此无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。如果在程序中定义a和b两个短整型变量(占2个字节),其中b为无符号短整型:
short a; //a为有符号短整型变量
unsigned short b; //b为无符号短整型变量
则变量a的数值范围为-32768~32767,而变量b的数值范围为0~65535,。图3表示有符号整型变量a的最大值(32767)和无符号整型变量b的最大值(65535).
说明:
(1)只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据不能加。
(2)对无符号整型数据用“%u”格式输出。%u表示用无符号十进制数的格式输出。
搜索微信公众号【balayihuier】或扫描下方二维码关注微信公众号,资深软件工程师带你手把手撸代码,从此走上人生巅峰,迎娶白富美!
signed int 数据范围_整型数据相关推荐
- Arduino 从串口接收到的数据中提取整型数据(parseInt)
Arduino 从串口接收到的数据中提取整型数据(parseInt) 函数说明 parseInt函数可用于从设备接收到的数据中寻找整数数值. 该函数属于Stream类.该函数可被Stream类的子类所 ...
- c语言整型变量程序基本,C语言的数据类型→整型数据
整型数据 一.整型常量的表示方法: "整型常量"即"整常数". 在C语言中,整常数有三种形式表示: 十进制整数: 如:123.-456.4. 八进制整数,以0开 ...
- C语言的数据类型--整型数据
知识点一:整型数据类型 整型数据类型 缺省型 名称 [signed]int int 整型 unsigned int unsigned int 无符号整型 [signed]short[int] shor ...
- c语言整型如何存放,C语言的数据类型→整型数据
整型数据 一.整型常量的表示方法:"整型常量"即"整常数". 在C语言中,整常数有三种形式表示: 十进制整数: 如:123.-456.4. 八进制整数,以0开头 ...
- 16位整型数据matlab,matlab的整型数据
1. 整型数据的申明或转换 matlab里默认都是double型数据,想要使用16位有符号整数,则需要用如下命令进行转换 b = int16(a); 其它类型的函数都是相似的,如 int, int16 ...
- C语言中字符串数据转为整型数据并提取整型数据
方法一:利用库中的atoi函数,将字符类型转换为整型,则可提取出整型. #include<stdio.h> #include<string.h> int main() {cha ...
- 深度学习数据自动编码器_如何学习数据科学编码
深度学习数据自动编码器 意见 (Opinion) When I first wanted to learn programming, I coded along to a 4 hour long Yo ...
- excel导入数据校验_使用Excel数据验证限制日期范围
excel导入数据校验 Yesterday, one of my clients emailed to let me know that she was having trouble entering ...
- 二、C语言的数据类型—整型数据
整型数据分为整型常量和整型变量. 知识点一:整型常量 在C语言中,整型常量采用3种形式来进行表示: 1)十进制整数: 2)以0开头的八进制整数,如0123就是一个八进制数,它等于十进制数83: 3)以 ...
最新文章
- 【 Linux 】Vim的基本配置以及出现问题解决(su认证失败)
- R语言-处理异常值或报错的三个示例
- 02. SQL表达式的灵活使用
- WEBGIS体系和OGC标准
- mysql 代理作业_查看SQLServer 代理作业的历史信息
- 深度linux腾讯视频,在UOS/Deepin 20/Ubuntu 18.04下安装腾讯视频Linux版的方法
- C语言关于signal()函数
- 26个要素,仅仅依靠百度打造成功网站
- Win10 Edge浏览器续航碾压火狐/Chrome
- 小程序坑集【日常总结,持续更新(11.08更新)】
- 马斯克公布柏林超级工厂航拍 白雪皑皑仍在施工
- 【PLY】Lex和Yacc简单示例
- “智能语音助手”的竞品分析 —— 你好小悟小爱同学(4)
- thoughtworks业务需求分析师面试总结
- 计划行为理论(TPB,Theory of Planned Behavior)
- vue图片加载不出来的问题
- java学生基本信息管理_Java课程设计 - 学生基本信息管理
- Java线程池如何优雅地等待所有任务执行完
- CSAPP_Chapter1
- 服务器系统安装提示无法创建新的系统分区,安装win7旗舰版系统时提示“安装程序无法创建新的系统分区”怎么解决...