- 浏览: 895476 次
- 性别:
- 来自: 太原
文章分类
- 全部博客 (198)
- Linux/Unix (38)
- TinyOS / NS-2 for『WSN』 (44)
- 思想的拼图 (5)
- 开源 OpenSource (2)
- Framework 开发框架 (0)
- Software Engineering 软件工程 (2)
- IT项目管理 (6)
- Networking 网络技术 (2)
- Java (6)
- C语言 ANSI C (22)
- .NET / C# (9)
- C++ (12)
- Web 语言 Html/Xml (5)
- Groovy on Grails (1)
- Algorithm 算法 (1)
- Database 数据库技术 (5)
- Tools (21)
- VM 虚拟机 (3)
- WSN (wireless sensor network) (2)
- Linux 命令专辑 (3)
- PHP (0)
- 办公软件 (3)
最新评论
-
cfczdws:
感谢楼主,查了半天终于发现居然是htmlentities()做 ...
htmlentities()函数把中文转成了乱码 -
decoxiaohan:
这本书的名字 有谁知道????~~~
OMNeT++中文用户手册(完全版) -
huonie:
怎么下载啊
OMNeT++中文用户手册(完全版) -
huonie:
没有内容啊
OMNeT++中文用户手册(完全版) -
kyx0413:
谢谢先 先看看
OMNeT++中文用户手册(完全版)
int数据类型的位数为16位,short int数据类型的位数也是16位。而long int的位数为32位,可用来存储比较大的整数。
short int 和 long int可以缩写为short 和 long。
C语言中的整型数据类型int、short int 和 long int
名称 | 全称类型说明符 | 缩写类型说明符 | 位数 | 范围 |
整型 | int | int | 16位 | -32768至+32767 |
无符号整型 | unsigned int | unsigned | 16位 | 0 至 65,535 |
短整型 | short int | short | 16位 | -32768至+32767 |
无符号短整型 | unsigned short int | unsigned short | 16位 | 0 至 65,535 |
长整型 | long int | long | 32位 | -2,147,483,648 至 2,147,483,647 |
无符号长整型 | unsigned long int | unsigned long | 32位 | 0至4,294,967,295 |
整型变量的声明方式:
int sum;
long int population;
unsigned int sum;
在一个语句中声明多个属于同一类型的变量:
int withd, height;
int 类型的变量初始化方式:
withd = 150; //前面已经声明,在此进行初始化
int height = 60; //直接在一个语句中进行声明和初始化
C语言中整型常量有三种不同的表示形式:
1、八进制整型常量:在八进制数值前面加前缀“0”,其数码取值为0~7。例如:054、0567、05421。
2、十六进制整型常量:前缀为“0X”或“0x“,其数码取值为0~9、A~F 或 a~f。例如:0X3D、0XE0、0xfff等。
3、十进制整型常量:既无前缀也无后缀。例如:254、745、890等。 如将存储为long类型,需要在数字序列最后附一个字母L 或 l 作为后缀。例如:245L、7850L、124l等
1. 其它整数类型
int 是 C 语言的基本整数类型,可以满足我们处理一般数据的需求。C 语言还提供了四个可以修饰 int 的关键字:short、long、signed,以及 unsigned。利用这四个关键字,C 语言标准定义了以下整数类型:
1) short int(可简写为 short),和 int 一样,也是有符号整数
2) long int(简写:long),有符号整数
3) long long int(简写:long long),C99 标准添加的类型,
有符号整数
4) unsigned int(简写:unsigned),无符号整数,不能表示负数
5) unsigned long int(简写:unsigned long),无符号整数,
不能表示负数
6) unsigned short int(简写:unsigned short),无符号整数,
不能表示负数
7) unsigned long long int(简写:unsigned long long),
C99 添加的类型,无符号整数
8) 所有没有标明 unsigned 的整数类型默认都是有符号整数。
在这些整数类型前面加上 signed 可以使读者更清楚地知道
这些是有符号整数,尽管有没有 signed 都表示有符号整数。
例如:signed int 等同于 int 。
一般我们把 short 称为短整型,把 long 称为长整型,把 long long 称为超长整型,把 int 称为整型。unsigned 打头的那些整数类型统称为无符号整型。例如:我们称 unsigned short 为无符号短整型。以此类推。
2. 声明方式
这些整数类型的声明方式与 int 类型的声明方式一样。例如:
long int estine;
long johns;
short int erns;
short ribs;
unsigned int s_count;
unsigned players;
unsigned long headcount;
unsigned short yesvotes;
long long ago; /* C99 特有 */
unsigned long long ego; /* C99 特有 */
如果您的编译器不支持 C99 标准,那就不能使用 long long 和 unsigned long long。
3. 取值范围(表示范围)
标准也规定了这些整数类型的最小取值范围。short 的最小表示范围和 int 一样,都是-32767 到 32767 。也就是 -(2^15 - 1)到(2^15 - 1)。其中,2^15表示 2 的 15 次方。类似地,2 的 20 次方记作2^20 ,以此类推。注意:C 语言中 2^15 并不表示 2 的 15 次方,为了书写方便,我们姑且这么表示。long 的最小取值范围是 -2147483647 到 2147483647 。也就是 -(2^31 - 1) 到 (2^31 - 1) 。unsigned short的最小表示范围和unsigned int 一样,都是 0 到 65535(2^16 - 1)。unsigned long 的最小取值范围是 0 到 4294967295(2^32 - 1)。long long的最小取值范围是 -9223372036854775807(-(2^63 - 1))到 9223372036854775807(2^63 - 1);unsigned long long 是 0 到 18446744073709551615(2^64 - 1)。
标准规定,int 的表示范围不能小于 short 的表示范围,long 的表示范围不能小于 int 的表示范围。这就是说 short 型变量占用的空间可能比 int 型变量少,而 long 型变量占用的空间可能比 int 型变量多。16 位(bit)的计算机中,int 和 short 一般都是 16 位,而 long 是 32位;32位的计算机中,short一般是 16 位,而long和int是 32位。TC2(16位的编译器)中,int是16位的;而 Dev-C++(32 位的编译器)中,int 是 32 位的。
使用 unsigned int 声明的变量只能表示非负整数(0 和正整数)。如果 int 是 16 位的话,那么 unsigned int 的表示范围是 0 到 65535(2^16 - 1)。这是因为 unsigned 不需要符号位,可以把 16 个位全都用于表示整数。而 int 需要一个位作为符号位,用于表示正负,只有 15 个位用于表示整数。
目前,long long 一般 64 位,long 是 32 位,short 是 16 位,而 int 或者 16 位,或者 32 位。具体某个编译器到底使用多少位来表示这些类型,我们可以用运算符 sizeof 来获取。例如:
printf( "%lu\n", (unsigned long)sizeof(int) * 8 ); /* 输出 int 的位数 */
printf( "%zu\n", sizeof(short) * 8 ); /* 输出 short 的位数 */
sizeof 运算符返回其操作数占用空间的大小,以字节(Byte)为单位。注意,C 定义字节的大小为 char 类型的大小。char 通常是 8 位(bit)的,当然也可以更大。这里我们假设 char 是 8 位的。点击查看 char 类型详细介绍
sizeof 的用法我们以后会讲到,现在只要有个印象就好了。第二句中的 %zu 是 C99 特有的,如果您的编译器不支持 C99(准确地说,应该是如果您的编译器使用的库函数不支持 C99),运行结果将会出错。
4. 整数类型的选择
如果您要处理的只是非负整数,那么应该优先使用 unsigned 打头的那些整数类型。如果您要处理的整数超出了 int 所能表示的范围,并且您的编译器中,long 的表示范围比 int 大,那就使用 long。不过,若非必要,尽量不要用 long,因为它可能会降低程序运行效率。有一点要注意:如果您的编译器中,long 和 int 都是 32 位的,并且您需要使用 32 位整数,那么应该用 long,而不要用 int。只有这样,我们的程序才可以安全地移植到 16 位的计算机,因为 16 位的计算机中,int 一般也是 16 位的。类似地,如果您需要使用 64 位整数,那就用 long long。如果 int 是 32 位的话,那么使用 short 可以节省空间,不过您得确保您要处理的整数不会超出 short 的表示范围。这种“节省”对内存大的计算机来说,是没什么意义的。
5. long 型常量和 long long 型常量
一般来说,整数常量是被当作 int 类型来存储的。如果我们使用的整数常量超出了 int 的表示范围,C 语言规定编译器自动使用 unsigned int 来处理这个常量。如果 unsigned 也不足以表示这个常量的话,编译器就会用 long。如果还表示不了的话,那就依次用 unsigned long,long long,unsigned long long。如果 unsigned long long 也表示不了,那么编译器就没辙了。注意:long long 和 unsigned long long 是 C99 特有的。例如:如果 int 是 16 位的话,它就表示不了常量 1000000。编译器会使用 long 来处理这个常量,因为 unsigned int 也表示不了 1000000 。
同样,十六进制和八进制整数常量通常也是被作为 int 来处理。但是,当我们使用的常量超出了 int 的表示范围后,编译器会依次使用unsigned int,long,unsigned long,long long 和 unsigned long long。直到所使用的类型足以表示那个常量为止。
有时,我们使用的是较小的常量,但是我们希望这个常量被当作 long 来处理,这就需要在这个常量后面加上后缀 l(小写字母 l)或者 L(大写字母 L)。我们应该避免使用 l ,因为 l 容易和数字 1 混淆。例如:整数常量 7 是被作为 int 来处理的,但整数常量 7L(或者 7l)是被作为 long 来处理的。类似地,在整数常量后面加上后缀 ll 或者 LL ,这个常量就会被当作 long long 来处理。例如:3LL 。如果想使用无符号整数常量的话,还要配合使用后缀 u 或者 U 。例如:2u,3U,4Lu,5ul,6LU,7LLU,8Ull,9uLL 。
这些后缀也可以用于十六进制和八进制整数常量。例如:020L,010LL,0x30uL,0x40ull 。
参考资料:C Primer Plus, 5th Edtion By Stephen Prata
The C Programming Language 2e By K&R
C99 标准
整型常量
十进制、八进制和十六进制的整型常量可加后缀以指示类型,如下表所示。
如果设置 -xc99=all,编译器将根据常量大小,使用以下列表中可以表示该值的第一项:
-
int
-
long int
-
long long int
如果值超过 long long int 可表示的最大值,编译器会发出警告。
如果设置 -xc99=none,则为无后缀常量指定类型时,编译器将根据常量大小,使用以下列表中可以表示该值的第一项:
发表评论
-
不用库函数,自己实现strcpy和memcpy函数
2009-04-04 02:52 35781.代码实现 char* strcpy(char* strD ... -
C/C++:对指针进行操作的函数
2009-04-03 03:37 1213先看个例子 void add_array(int* a){ ... -
C语言编程常见问题解答之指针和内存分配
2009-03-30 02:51 2654指针为C语言编程提供了 ... -
详细解析C语言中的sizeof
2009-03-24 00:20 1291一、sizeof的概念 s ... -
Array vs. Malloc: A C语言问题
2009-03-16 23:57 1640code: int foo[256]; 和 int *b ... -
数组作函数的参数 和 返回值return
2009-03-16 20:40 18424同其它变量一样,数组也可以作函数的参数。数组元素只能作 ... -
C/C++:函数参数传递方式
2009-03-16 20:26 3200传递变量名,传递指针 ... -
C语言中的可变参数函数 三个点“…”printf( const char* format, ...)
2009-03-16 20:17 19349第一篇 C语言编程中有时会遇到一些参数个数可变的函数,例如p ... -
C语言,结构体(struct) 用法
2009-03-15 19:52 5517结构(struct) 结构是由基本数据类型构成的、 ... -
C语言常量的定义方法
2009-03-14 23:47 2970常量是在程序运算过程中不变的量。 常量在程序中经常 ... -
typedef struct 和 typedef struct tagname 区别
2009-03-12 20:25 2586在struct, union, 和 enum 的定义中tag ... -
C语言中typedef用法
2009-03-12 19:42 66951. 基本解释 typedef为C语言的关键字,作用 ... -
i++和++i的区别
2009-03-12 01:14 1937如果有表达式 a = i++ 它等价于 a = i ; i ... -
c语言中的struct和union
2009-03-10 04:22 8731联 合(union) 1. 联合说明和联合变 ... -
ntoh16 与 hton16
2009-03-10 01:49 3248/* * Functions hton16 and ht ... -
return 1 或 return 0 的作用
2009-03-07 01:43 8024在C或C++中常有一些程序,结尾有不影响运行的 return ... -
GNU C 扩展之__attribute__ 机制简介
2009-03-04 04:44 1267GNU C的一大特色(却不 ... -
#ifdef and #ifndef
2009-03-01 01:53 1613Preprocessor: #ifdef and #ifnde ... -
c/c++中#include <>与#include""区别
2009-02-28 22:45 33267<>先去系统目录中找头文件,如果没有在到当前目录下 ... -
基本的字节序
2009-02-22 03:22 1156对于单一的字节(a byte),大部分处理器以相同的顺序处理位 ...
相关推荐
在本文中,我们将介绍C语言中的三种整型数据类型:int、short int和long int。 整型数据类型的定义 在C语言中,整型数据类型可以分为三种:int、short int和long int。其中: * int数据类型的位数为16位,可以...
在STM32中,数据类型可以分为整型、实型和字符型三个大类。整型包括signed char、short、int、long等,实型包括float、double等,字符型包括char等。 整型数据类型是指可以表示整数的数据类型,包括signed char、...
- int:用于存储整数,分为short int、int和long int,分别表示短整型、普通整型和长整型。 - float:单精度浮点型,用于存储小数。 - double:双精度浮点型,提供更高的精度。 此外,还可以通过signed和unsigned...
长整型、短整型、整型、无符号基本型、无符号短整型和无符号长整型等类型的数据定义关键字分别为long (int)、short (int)、int、unsigned (int)、unsigned short (int)和unsigned long (int)。整型数据的范围是长...
5. **整型**:C语言的整型包括`int`、`short int`、`long int`和对应的无符号类型,如`unsigned int`。每个类型的字节数和表示的数值范围不同,需要注意在赋值时避免超出范围导致错误。 6. **实型(浮点型)**:...
1. 整型:整型是以整数形式出现的数据类型,包括short、int、long等多种类型。整型可以用于表示整数、布尔值和枚举值。 2. 实型:实型是以小数形式出现的数据类型,包括float、double等多种类型。实型可以用于表示...
本章节主要讲解C语言中的数据类型,包括变量和常量的基本概念,以及如何理解和使用基本数据类型如整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。此外,还会涉及算术运算符的使用、类型转换、自增...
实型数据用于表示带有小数点的数值,主要包括单精度(`float`)和双精度(`double`)两种类型: 1. **单精度实型** `float`:通常占用4字节; 2. **双精度实型** `double`:通常占用8字节。 实型数据的存储方式较为...
整型数据类型包括short、int、long和long long,用于存储整数。浮点型数据类型分为float(单精度)和double(双精度),用于存储实数。字符型数据类型是char,用于存储单个字符。枚举类型(enum)允许程序员自定义一...
- **int**: 是一种基本的整型数据类型,通常占用4个字节,在STM32上一般为32位。 - **short**: 表示短整型,通常占用2个字节。 - **long**: 长整型,通常占用4个字节。 在STM32的库文件中,为了更好地兼容不同平台...
这些基本类型可以使用符号属性(signed、unsigned)和长度属性(short、long)来说明变量的取值区间和精度。 1. 字节型(char) 字节型是 C 语言中最基本的数据类型,占用 1 字节的存储空间。可以使用符号属性 ...
首先,C语言中数据类型主要包括基本数据类型和构造数据类型,这里讨论的基本数据类型包括布尔类型(bool)、字符类型(char)、整型类型(short、int、long)、浮点类型(float、double)等。 布尔类型(bool)通常占用一个...
C语言数据类型是编程语言的基础概念之一,它指的是编程语言中用来存储和操作数据的类型。在C语言中,数据类型分为基本类型和派生类型。基本类型包括整型、实型、字符型、空类型、指针类型、数组类型、结构体类型、...
1. 整型:C语言提供了多种整型类型,包括`int`、`short int`、`long int`和对应的无符号类型`unsigned int`、`unsigned short int`、`unsigned long int`。不同类型的整型变量在内存中占用的字节数不同,其取值范围...
2. **整型变量**:整型变量同样有四种类型,分别是int、short int、long int和unsigned int,每种类型的声明方式和适用场景各有特点。例如,short int用于节省内存空间,而long int则用于表示更大范围的数值。 3. *...
1. 整型数据:C语言提供了三种整型类型,分别是int、short int和long int。int通常分配2个字节,short int也是2个字节,而long int则分配4个字节。整型数据都是以二进制补码的形式存储,这是为了方便处理正负数,...
C语言中的基本类型包括字节型(char)、整型(int)和浮点型(float/double)。每种基本类型都有其对应的符号属性和长度属性,用于说明变量的取值范围和精度。 符号属性 signed 和 unsigned 用于说明变量的符号位,...
整型数据类型主要包括`char`, `short`, `int`, `long`, `long long`,以及它们的无符号版本`unsigned char`, `unsigned short`, `unsigned int`, `unsigned long`, `unsigned long long`。这些类型根据它们的字节数...
C语言数据类型是一种基本的数据结构,用于存储和表示数据。C语言数据类型包括: * 整型:包括 int、long、short 等 * 浮点型:包括 float、double 等 * 字符型:包括 char 等 * 枚举型:包括 enum 等 * 结构体型:...