C语言长整型常数,什么是长整型常数?

 我来答
听不清啊
高粉答主

2016-01-09 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

长整型数是相对于基本整型数而言的,一般它占用的存储空间是基本整型数的2倍。具体大小随不同的编译器而不同。如果它的存储空间是k个字节,可存储数的范围是-2^(8k-1)~+2^(8k-1)-1。

整型变量可分为以下几类:

1.基本型

类型说明符为int,根据计算机的内部字长和编译器的版本,在内存中可能占2或4个字节(通常分别在16位机和32位机上),其取值为基本整常数。

2.短整型

类型说明符为short int或short,在内存中占2个字节,其取值为短整常数。

3.长整型

类型说明符为long int或long,在内存中占4个字节,其取值为长整常数。

4.64位整型(非ANSI标准)

类型说明符为__int64、long long int或long long,在内存中占8个字节,其取值为64位整常数。

5.无符号型

类型说明符为unsigned。它可以单独使用代表unsigned int,也可以作为前缀,都表示无符号整数,即永远为非负的整型变量,大于0的数据范围约扩大为原来的2倍。各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。



整数的后缀

可以用后缀“L”或“l”来表示长整型数。例如:

十进制长整型数:158L (十进制为158)、358000L (十进制为358000);

八进制长整型数:012L (十进制为10)、077L (十进制为63)、0200000L (十进制为65536);

十六进制长整型数:0X15L (十进制为21)、0XA5L (十进制为165)、0X10000L (十进制为65536)。

 

长整型数158L和基本整型数158 在数值上并无区别。但对158L,因为是长整型数,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。

 

无符号数也可用后缀表示,整型数的无符号数的后缀为“U”或“u”。例如:358u、0x38Au、235Lu均为无符号数。

 

前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整型数A5,其十进制为165。

panpan759500
2018-03-31 · TA获得超过1.3万个赞
知道小有建树答主
回答量:125
采纳率:100%
帮助的人:3.6万
展开全部

长整型常数是相对于基本整型常数而言的。长整型常数占用的存储空间是基本整型常数的2倍。

具体大小随不同的编译器而不同。如果它的存储空间是k个字节,可存储数的范围是-2^(8k-

1)~+2^(8k-1)-1。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天宇4360
2015-09-01 · TA获得超过785个赞
知道答主
回答量:135
采纳率:100%
帮助的人:56万
展开全部
不同的编译器对short和int类型可能分出不同的内存。但是int一般都是4个字节,可以在程序中使用sizeof(int)来证实,长整形的是8个字节。两者的范围也不一样。长整型的自然要大点。在有可能存在数据溢出的时候一般都使用长整型。同样可以使用sizeof(long)来验证。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式