1,int 是 C 语言的基本整数类型,可以满足我们处理一般数据的需求。

  C 语言还提供了四个可以修饰 int 的关键字:short、long、signed,以及 unsigned。

  利用这四个关键字,C 语言标准定义了以下整数类型:

名称 全称类型说明符 缩写类型说明符       位数                     范围
整型 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
 

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. 整数类型的选择

如果处理的只是非负整数,那么应该优先使用 unsigned 打头的那些整数类型。

如果处理的整数超出了 int 所能表示的范围,并且编译器中,long 的表示范围比 int 大,那就使用 long。
不过,若非必要,尽量不要用 long,因为它可能会降低程序运行效率。
有一点要注意:如果编译器中,long 和 int 都是 32 位的,并且您需要使用 32 位整数,那么应该用 long,而不要用 int。
只有这样,程序才可以安全地移植到 16 位的计算机,因为 16 位的计算机中,int 一般也是 16 位的。
类似地,如果要使用 64 位整数,那就用 long long。
如果 int 是 32 位的话,那么使用 short 可以节省空间,不过得确保您要处理的整数不会超出 short 的表示范围。这种“节省”对内存大的计算机来说,是没什么意义的。

4. 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语言三种整数类型的更多相关文章

  1. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的

    bool是LongBool类型. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool.后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使 ...

  2. java Data、String、Long三种日期类型之间的相互转换

    java Data.String.Long三种日期类型之间的相互转换      // date类型转换为String类型   // formatType格式为yyyy-MM-dd HH:mm:ss// ...

  3. sql server 性能调优之 资源等待内存瓶颈的三种等待类型

    一.概述 这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),SOS_RESERVEDMEMBLOCKLIST(0x007B),RESO ...

  4. SEO三种职位类型:编辑型SEO、技术型SEO、营销型SEO详解

    SEO三种职位类型:编辑型SEO.技术型SEO.营销型SEO详解 网站SEO优化作为营销端的服务之一,这些年也呈现出日新月异的格局.一改过去游兵散将式的小作坊生产模式,不断有力量强大的公司团体加入到这 ...

  5. 固本培元之三:Convert、运算符、流程控制语句、ref/out/in三种参数类型

    一.Convert类常用的类型转换方法Convert.ToInt32() 转换为整型(int)Convert.ToChar() 转换为字符型(char)Convert.ToString() 转换为字符 ...

  6. sql server 性能调优 资源等待之内存瓶颈的三种等待类型

    原文:sql server 性能调优 资源等待之内存瓶颈的三种等待类型 一.概述 这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),S ...

  7. xhtml三种元素类型

    xhtml三种元素类型:块级元素/内联元素/可变元素 块级元素:独占一行.可自定义自己的宽度和高度.作为其他元素的容器,可容纳其他内联元素和块级元素,喻做一个盒子.内联元素:始终以行内逐个显示.不能设 ...

  8. 由fprintf和printf看C语言三种标准流

    一.C语言中的三种标准流 1.标准输入流:stdin 2.标准输出流:stdout 3.标准错误输出流:stderr 他们的类型都是File * 二.fprintf于printf的区别 frintf( ...

  9. python学习Day8 三种字符类型、文件操作

    复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...

随机推荐

  1. 前端开发:javascript中的面向对象

    前端开发:面向对象与javascript中的面向对象实现(一) 面向对象理解: 面向对象是一种对现实世界理解和抽象的方法,是一种先进的程序设计理念,是一种比较抽象的,多形态的设计模式.我们可以这么理解 ...

  2. Win Tomcat8 占用内存过高

    1.解压版 找到tomcat/bin/catalina.bat 文件,修改对应参数 2.安装版 windows服务执行的是bin/tomcat.exe.他读取注册表中的值,而不是catalina.ba ...

  3. 解决xpath中文乱码

    利用xpath建标签树以后,虽然提高了元素匹配效率,但是etree会把中文转为ASCII码,所以简单地tostring以后会有乱码. 解决方法: import requests from reques ...

  4. centos7 ip配置及ssh服务连接

    一.配置ip /etc/sysconfig/network-scripts/ifcfg-ens33 ifcfg-ens33 这个是配置网卡的配置文件,名字可能不一样,大概为:ifcfg-网卡名 TYP ...

  5. ssh访问ubuntu13.10

    步骤: 首先确保网络连接是ok,网络连接方式"桥接“,手动配置 ip 192.168.1.9,和主机是同一网段 1.检查当前有没有安装openssh-server(已安装) 2. 安装ope ...

  6. JS闭包(1)

    1.首先看一段代码: var a = 1; function fn1(){ var b = 2; function fn2(){ console.log(a); console.log(b); } } ...

  7. Linux 7 和 CentOS 7 收到重要内核安全更新

    导读 Red Hat 和 CentOS 宣布了其 Red Hat Enterprise Linux 7 和 CentOS Linux 7 操作系统系列重要内核安全更新的可用性. 据悉,这些更新解决了两 ...

  8. 零基础学完Python的7大就业方向,哪个赚钱多?

    “ 我想学 Python,但是学完 Python 后都能干啥 ?” “ 现在学 Python,哪个方向最简单?哪个方向最吃香 ?” “ …… ” 相信不少 Python 的初学者,都会遇到上面的这些问 ...

  9. 洛谷 P1263 宫廷守卫

    被这道题折腾了 \(2\) 个小时. 按照题意,每个守卫的上下左右四个方向上应当都是墙,而不能出现其他的守卫. 如图是一个合法的放置方案.每个守卫四个方向上都是墙(包括宫廷外墙). 如图是一个非法的放 ...

  10. 配置<welcome-file>为自定义路径

    welcome-file是web.xml中的一个配置,其作用是配置启动项目时默认跳转的欢迎页面,一般我们会将其指定为一个静态页面. 那如果我们要将自定义的请求路径作为欢迎页面该怎么做呢? 1.配置we ...