第三章:数据类型-2整型

C整型

目标

在本文章中,您将了解C整数类型,并了解signed/unsigned、short/long限定符的工作原理。

介绍C整型

整数是包括负数、零和正数的数字,例如:-1、0、1、2…2020。整数没有小数点。例如,数字3.14不是整数,因为它包含一个小数点。

C使用int关键字来表示整型。下面声明了一个整数类型的变量: int age = 1; 为了在内部存储整数,C使用一个固定的位数(由0和1组成的序列)。在不同的计算机中,位数也是不同的。

例如,大多数UNIX机器使用32位(4字节)来表示整数。因此,int数的范围是从-2^32(- 2147,483,648)到2^31-1(2147,483,647)。

然而,一些传统PC使用16位来表示整数。因此,整数的取值范围是-32,768 ~ 32,767。

limits.h文件定义了两个表示最小和最大整数的值。以下程序显示您计算机上的整数范围:

#include <stdio.h>

#include <limits.h>

int main()

{

    printf("(%d, %d)", INT_MIN, INT_MAX);

    return 0;

}

short/long 限定符

C为您提供了两个限定符short和long,它们可以改变整数的大小。一般来说,短的通常是16位,长的至少是32位。

规则是short不大于int, int不大于long。然而,这取决于编译器是否遵守规则。

signed/unsigned整数

C提供了两个限定符,称为signed和unsigned,它们适用于任何整数。无符号整数总是正的和零。例如:

unsigned int quanity = 20;

signed int profit = 0;

下表展示了整数类型及其对应的同义词:

整数类型   同义词                                                                       注释

int              signed,signed int

short          short int,signed shor,signed short int

longlong    int,signed long,signed long int

long long    long long int,signed long long,signed long long int   从C99可用

C还为每个有符号整数类型提供了相应的无符号整数类型,该类型具有相同的内存大小。下表说明了无符号整数类型:

有符号整数类型   无符号整数类型

int                         unsigned int

short                     unsigned short

long                      unsigned long

long long              unsigned long long

整数范围

C精确地定义了每个整数类型的最小存储大小,例如,short至少需要2个字节,long至少需要4个字节。

下面的表格显示了C中整数类型的常见大小:

类型                    存储大小    最小值    最大值

char                    1字节        -128        127

unsigned char     1字节        0              255

signed char         1字节        -128         127

int                        2字节或4字节  -32768或-2147486648     32767或2147483647

unsigned int         2字节或4字节   0       65535或2147483647

short                    2字节        -32768        32767

unsigned short        2字节        0            65535

long                        4字节        -2147483648    2147483647

unsigned long        4字节        0            4294967295

long long(C99)        8字节        -9223372036854775808        9223372036854775807

unsigned long long    8字节      0     18446744073709551615

获得整型类型的大小

要获取整数类型的大小,可以使用sizeof()操作符,该操作符以字节为单位返回类型的大小。例如,下面的程序使用sizeof()操作符来获取各种整数类型的大小:

#include <stdio.h>

int main()

{

    printf("sizeof(short) = %d bytes\n",sizeof(short));

    printf("sizeof(int) = %d bytes\n",sizeof(int));

    printf("sizeof(signed int) = %d bytes\n",sizeof(signed int));

    printf("sizeof(long) = %d bytes\n",sizeof(long));

    printf("sizeof(long long) = %d bytes\n",sizeof(long long));

    return 0;

}

总结

。整数是整数,包括负数、0和正数。

。C语言使用int关键字来表示整型。

。整数的大小取决于程序运行的平台。

。limits.h具有指定最小和最大整数值的INT_MIN和INT_MAX。

。对整数类型应用有符号和无符号限定符来声明有符号和无符号整数。

。对整数类型应用短限定词和长限定词以更改整数类型的大小。

。使用sizeof()操作符获取以字节为单位的整数类型的大小。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容