C语言整数的取值范围
文章目录
- 1、整数的取值范围
- 2、获取视频教程
- 3、版权声明
整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言使用int关键字来定义整数变量(int是 integer 的简写)。
在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。
signed:有符号的,可以表示正数和负数。
unsigned:无符号的,只能表示正数,例如数组的下标、人的身高等。
short:短的,现在主流的64位操作系统下,整数占用内存4个字节,使用 4
个字节保存较小的整数绰绰有余,会空闲出两个字节来,这些字节就白白浪费掉了。在C语言被发明的早期,或者在单片机和嵌入式系统中,内存都是非常稀缺的资源,所有的程序都在尽可能节省内存。
long:长的,更长的整数。
1、整数的取值范围
整数的取值范围与计算机操作系统和C语言编译器有关,没有一个固定的数值,我们可以根据它占用的内存大小来推断它的取值范围。
一个字节有8个位,表示的数据的取值范围是28-1,即255。
如果占用的内存是两个字节,无符号型取值范围是28ⅹ28-1。
如果占用的内存是四个字节,无符号型取值范围是28ⅹ28ⅹ28ⅹ28-1。
如果占用的内存是八个字节,无符号型取值范围是28ⅹ28ⅹ28ⅹ28ⅹ28ⅹ28ⅹ28ⅹ28-1。
如果是有符号,取值范围减半,因为符号占一个位。
下面用一个示例代码来测试各种整数占用内存的大小。
示例(book60.c)
/** 程序名:book60.c,此程序演示整数占用内存的大小和取值范围。* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>int main()
{short si; // 短整数int ii; // 整数long li; // 长整数printf("sizeof short is %d\n",sizeof(short));printf("sizeof int is %d\n",sizeof(int));printf("sizeof long is %d\n",sizeof(long));
}
运行效果
sizeof是C语言中保留关键字,是一种运算符,不是函数,sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为单位。
int ii; // sizeof(int)和sizeof(ii)都可以。
根据book60.c的测试结果,我们可以得到各种整数的取值范围。
类型简写 | 类型全称 | 长度 | 取值范围 |
---|---|---|---|
short | [signed] short [int] | 2字节 | -32768~32767 |
unsigned short | unsigned short [int] | 2字节 | 0~65535 |
int | [signed] int | 4字节 | -2147483648~2147483647 |
unsigned int | unsigned [int] | 4字节 | 0~4294967295 |
long | [signed] long [int] | 8字节 | -9223372036854775808~ 9223372036854775807 |
unsigned long | unsigned long [int] | 8字节 | 0~18446744073709551615 |
注意:
1)计算机用最高位1位来表达符号,unsigned修饰过的正整数不需要符号位,在表达正整数的时候比signed修饰的正整数取值大一倍。
2)在写程序的时候,上表中括号[]的单词可以省略不书写。
3)在写程序的时候,给整数变量赋值不能超出变量的取值范围,编译的时候会出现类似以下的错误,程序运行也可能产生不可预后的后果。
4)现在计算机的内存不值钱,建议程序员少用short,慎用int,多用long,内存不是问题,程序的稳定高于一切。
2、获取视频教程
百万年薪程序员录制,《C/C++高性能服务开发基础》视频教程已在CSDN学院发布,优惠价12元,地址如下:
https://edu.csdn.net/course/play/29402
3、版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!
C语言整数的取值范围相关推荐
- 2字节取值范围_C语言整数的取值范围以及数值溢出
short.int.long 是C语言中常用的三种整数类型,分别称为短整型.整型.长整型.在现代操作系统中,short.int.long 的长度分别是 2.4.4 或者 8,它们只能存储有限的数值,当 ...
- java 整数 范围_探究JAVA整数的取值范围
查看JAVA的Integer.MAX_VALUE和Integer.MIN_VALUE可知,在JAVA中,整数的取值范围是0x8000000到0x7FFFFFFF之间.JAVA Integer 网上很多 ...
- 整数的取值范围及依据;二进制码中负数如何表示?
整数的取值范围及依据:二进制码中负数如何表示? 整数的取值范围 二进制码中负数如何表示 二进制码采用补码形式的好处 2的补码的本质 整数的取值范围 整数数据类型包括:byte.short.int.lo ...
- int对应的范围c语言,C语言int的取值范围
C语言int的取值范围在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295. C/C++编程语言中,int表示整型变量,是一 ...
- C语言int的取值范围
C语言int的取值范围 我们常常看到int取值范围为-32768-32767,实际上int的取值范围依赖于计算机系统,在16位机器中,int占16位,其中一位为符号位,所以取值范围为前面所说的-327 ...
- c语言 int的取值范围,C语言int的取值范围 ?
C语言int的取值范围在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295. C/C++编程语言中,int表示整型变量,是一 ...
- 32 位的有符号整数的取值范围以及数值溢出
short.int.long 是C语言中常用的三种整数类型,分别称为短整型.整型.长整型.在现代操作系统中,short.int.long 的长度分别是 2.4.4 或者 8,它们只能存储有限的数值,当 ...
- Go语言-int类型取值范围
相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8.int16.int32.int64.int.uint8.uint16.uint32.uint64.uint.文章目录 ...
- c语言int的取值范围源程序,C语言中int的取值范围是多少
C语言中int的取值范围是多少 发布时间:2020-07-03 11:35:02 来源:亿速云 阅读:104 作者:Leah C语言中int的取值范围是多少?针对这个问题,这篇文章详细介绍了相对应的分 ...
最新文章
- Android列表控件选项中添加进度框ProgressBar实现
- 实现Activity的滑动返回效果
- 如何创建 Code Snippet
- 男子商场抱起小女孩致其坠落 警方:嫌疑人被刑拘
- 第一次走绿道,从长岭陂到梅林水库
- 备份MySQL数据库的命令
- R开发(part2)--R语言中的数学计算
- how is native onClick event passed to application handler
- [MS评估文档]SharePoint Portal Server 2003 的 10 大优点
- STP的收敛及高级特性
- 计算机中submit commit区别
- C#实现的简单的随机抽号器
- 哲学家就餐问题及解决方法
- 爱莫科技入选英特尔“AI 百佳”,共同打造人工智能创新生态
- 医院pacs系统服务器配置,浪潮为千佛山医院PACS系统开“药方”
- R语言绘制heatmap热图
- js判断字符串字符数(汉字算两个)
- 乌镇峰会丨容联云:统一AI基础设施 形成AI生产与共享闭环机制
- 俩种方式找出Excel中相同和不同的数据
- IT行业招聘技巧--JD分析篇
热门文章
- Win10+Python3.6配置Spark创建分布式爬虫
- Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤
- C语言 判断一个数是否为素数
- 八大算法思想(二)------------------递归算法
- jpetstore开发实战--(1)
- python中面向对象的ui_怎样理解Python中的面向对象?
- 控件把鼠标放上去出现一个小窗口_控件跟着鼠标走,VBA让你的操作随心所欲
- matlab五角星的二维作图,MATLAB二维画图综合实例
- linux 测试本地端口是否打开,关于bash:有效测试Linux是否打开了端口?
- shrio反序列漏洞修复_Apache Shiro Java 反序列化漏洞分析