文章目录

  • 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语言整数的取值范围相关推荐

  1. 2字节取值范围_C语言整数的取值范围以及数值溢出

    short.int.long 是C语言中常用的三种整数类型,分别称为短整型.整型.长整型.在现代操作系统中,short.int.long 的长度分别是 2.4.4 或者 8,它们只能存储有限的数值,当 ...

  2. java 整数 范围_探究JAVA整数的取值范围

    查看JAVA的Integer.MAX_VALUE和Integer.MIN_VALUE可知,在JAVA中,整数的取值范围是0x8000000到0x7FFFFFFF之间.JAVA Integer 网上很多 ...

  3. 整数的取值范围及依据;二进制码中负数如何表示?

    整数的取值范围及依据:二进制码中负数如何表示? 整数的取值范围 二进制码中负数如何表示 二进制码采用补码形式的好处 2的补码的本质 整数的取值范围 整数数据类型包括:byte.short.int.lo ...

  4. int对应的范围c语言,C语言int的取值范围

    C语言int的取值范围在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295. C/C++编程语言中,int表示整型变量,是一 ...

  5. C语言int的取值范围

    C语言int的取值范围 我们常常看到int取值范围为-32768-32767,实际上int的取值范围依赖于计算机系统,在16位机器中,int占16位,其中一位为符号位,所以取值范围为前面所说的-327 ...

  6. c语言 int的取值范围,C语言int的取值范围 ?

    C语言int的取值范围在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295. C/C++编程语言中,int表示整型变量,是一 ...

  7. 32 位的有符号整数的取值范围以及数值溢出

    short.int.long 是C语言中常用的三种整数类型,分别称为短整型.整型.长整型.在现代操作系统中,short.int.long 的长度分别是 2.4.4 或者 8,它们只能存储有限的数值,当 ...

  8. Go语言-int类型取值范围

    相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8.int16.int32.int64.int.uint8.uint16.uint32.uint64.uint.文章目录 ...

  9. c语言int的取值范围源程序,C语言中int的取值范围是多少

    C语言中int的取值范围是多少 发布时间:2020-07-03 11:35:02 来源:亿速云 阅读:104 作者:Leah C语言中int的取值范围是多少?针对这个问题,这篇文章详细介绍了相对应的分 ...

最新文章

  1. Android列表控件选项中添加进度框ProgressBar实现
  2. 实现Activity的滑动返回效果
  3. 如何创建 Code Snippet
  4. 男子商场抱起小女孩致其坠落 警方:嫌疑人被刑拘
  5. 第一次走绿道,从长岭陂到梅林水库
  6. 备份MySQL数据库的命令
  7. R开发(part2)--R语言中的数学计算
  8. how is native onClick event passed to application handler
  9. [MS评估文档]SharePoint Portal Server 2003 的 10 大优点
  10. STP的收敛及高级特性
  11. 计算机中submit commit区别
  12. C#实现的简单的随机抽号器
  13. 哲学家就餐问题及解决方法
  14. 爱莫科技入选英特尔“AI 百佳”,共同打造人工智能创新生态
  15. 医院pacs系统服务器配置,浪潮为千佛山医院PACS系统开“药方”
  16. R语言绘制heatmap热图
  17. js判断字符串字符数(汉字算两个)
  18. 乌镇峰会丨容联云:统一AI基础设施 形成AI生产与共享闭环机制
  19. 俩种方式找出Excel中相同和不同的数据
  20. IT行业招聘技巧--JD分析篇

热门文章

  1. Win10+Python3.6配置Spark创建分布式爬虫
  2. Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤
  3. C语言 判断一个数是否为素数
  4. 八大算法思想(二)------------------递归算法
  5. jpetstore开发实战--(1)
  6. python中面向对象的ui_怎样理解Python中的面向对象?
  7. 控件把鼠标放上去出现一个小窗口_控件跟着鼠标走,VBA让你的操作随心所欲
  8. matlab五角星的二维作图,MATLAB二维画图综合实例
  9. linux 测试本地端口是否打开,关于bash:有效测试Linux是否打开了端口?
  10. shrio反序列漏洞修复_Apache Shiro Java 反序列化漏洞分析