C语言整数的取值范围
2021-02-04 04:17
标签:结果 short 建议 单位 cpp sign 原创文章 size ble 在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。 signed:有符号的,可以表示正数和负数。 unsigned:无符号的,只能表示正数,例如数组的下标、人的身高等。 short:短的,现在主流的64位操作系统下,整数占用内存4个字节,使用 4 long:长的,更长的整数。 整数的取值范围与计算机操作系统和C语言编译器有关,没有一个固定的数值,我们可以根据它占用的内存大小来推断它的取值范围。 一个字节有8个位,表示的数据的取值范围是2^8^-1,即255。 如果占用的内存是两个字节,无符号型取值范围是2^8^ⅹ2^8^-1。 如果占用的内存是四个字节,无符号型取值范围是2^8^ⅹ2^8^ⅹ2^8^ⅹ2^8^-1。 如果占用的内存是八个字节,无符号型取值范围是2^8^ⅹ2^8^ⅹ2^8^ⅹ2^8^ⅹ2^8^ⅹ2^8^ⅹ2^8^ⅹ2^8^-1。 如果是有符号,取值范围减半,因为符号占一个位。 下面用一个示例代码来测试各种整数占用内存的大小。 示例(book60.c) 运行效果 sizeof是C语言中保留关键字,是一种运算符,不是函数,sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为单位。 根据book60.c的测试结果,我们可以得到各种整数的取值范围。 注意: 1)计算机用最高位1位来表达符号,unsigned修饰过的正整数不需要符号位,在表达正整数的时候比signed修饰的正整数取值大一倍。 2)在写程序的时候,上表中括号[]的单词可以省略不书写。 3)在写程序的时候,给整数变量赋值不能超出变量的取值范围,编译的时候会出现类似以下的错误,程序运行也可能产生不可预后的后果。 4)现在计算机的内存不值钱,建议程序员少用short,慎用int,多用long,内存不是问题,程序的稳定高于一切。 C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。 来源:C语言技术网(www.freecplus.net) 作者:码农有道 如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!! C语言整数的取值范围 标签:结果 short 建议 单位 cpp sign 原创文章 size ble 原文地址:https://blog.51cto.com/14793471/2491276
个字节保存较小的整数绰绰有余,会空闲出两个字节来,这些字节就白白浪费掉了。在C语言被发明的早期,或者在单片机和嵌入式系统中,内存都是非常稀缺的资源,所有的程序都在尽可能节省内存。1、整数的取值范围
/*
* 程序名:book60.c,此程序演示整数占用内存的大小和取值范围。
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include
int ii; // sizeof(int)和sizeof(ii)都可以。
类型简写
类型全称
长度
取值范围
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
2、版权声明
上一篇:C语言i++和++i的区别和用法