社区
Java SE
帖子详情
关于Long类型声明的问题
mkf_wk
2010-03-21 10:39:01
long l1 = 2147483647; //对
long l2 = 2147483647L; //对
long l3 = 2147483648L; //对
long l4 = 2147483648; //错
为什么呢
...全文
517
15
打赏
收藏
关于Long类型声明的问题
long l1 = 2147483647; //对 long l2 = 2147483647L; //对 long l3 = 2147483648L; //对 long l4 = 2147483648; //错 为什么呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longtenggdf
2010-03-22
打赏
举报
回复
[Quote=引用 5 楼 bugsmaker 的回复:]
2楼正解
int 最大2^31-1=2147483647
long l1 = 2147483647;是把int型转型成long型给l1
而2147483648无法容纳在int型里,只能用long型的描述方式,所以只能用2147483648l或2147483648L来描述,所以long l4 = 2147483648;出错
[/Quote]
这里确实 是把 2147483647 按 int 编译了。但是这里把一个大类型变成了小类型,有点疑惑。
「已注销」
2010-03-22
打赏
举报
回复
“2147483647”本身默认为是个int类型的。同时这个数又是int类型的最大值.
long l1 = 2147483647; //它之所以对,是因为它把2147483647默认为int类型,转换类型之后赋值给long类型的L1
long l2 = 2147483647L; //它之所以对,是因为它把2147483647L当成一个long类型的数,赋值给long类型的L2
long l3 = 2147483648L; //它之所以对,是因为 2147483648 本身就处在long类型的范围内,当成一个long类型的数,赋值给long类型的L3
long l4 = 2147483648; //错 它之所以错,是因为2147483648 这个数默认是INT类型的,但是它超出了INT类型的范围,与L4无关。
keeya0416
2010-03-22
打赏
举报
回复
2147483647在int范围内,声明的时候自动类型转换成long了
而2147483648就不在int范围了。声明的时候必须制定long类型。
ladybirds2008
2010-03-22
打赏
举报
回复
[Quote=引用 8 楼 ark032425 的回复:]
引用 5 楼 bugsmaker 的回复:
2楼正解
int 最大2^31-1=2147483647
long l1 = 2147483647;是把int型转型成long型给l1
而2147483648无法容纳在int型里,只能用long型的描述方式,所以只能用2147483648l或2147483648L来描述,所以long l4 = 2147483648;出错
正解
[/Quote] dddddd
Atticfaith2010
2010-03-22
打赏
举报
回复
整数默认为INT型,而要转为LONG型则要向下转型,否则会出错
yufenghua
2010-03-22
打赏
举报
回复
对于整数,如果不加申明,系统会默认为int.而最后一个超出了范围,所以要加L指明是长整形。。。
SambaGao
2010-03-22
打赏
举报
回复
[Quote=引用 2 楼 soton_dolphin 的回复:]
第四个是个INT,不是LONG,如果声明LONG TYPE,必须在后面加L/l
[/Quote]
不错。。。。
而双精度默认是double型
Ark032425
2010-03-22
打赏
举报
回复
[Quote=引用 5 楼 bugsmaker 的回复:]
2楼正解
int 最大2^31-1=2147483647
long l1 = 2147483647;是把int型转型成long型给l1
而2147483648无法容纳在int型里,只能用long型的描述方式,所以只能用2147483648l或2147483648L来描述,所以long l4 = 2147483648;出错
[/Quote]
正解
hjh811
2010-03-21
打赏
举报
回复
[Quote=引用 5 楼 bugsmaker 的回复:]
2楼正解
int 最大2^31-1=2147483647
long l1 = 2147483647;是把int型转型成long型给l1
而2147483648无法容纳在int型里,只能用long型的描述方式,所以只能用2147483648l或2147483648L来描述,所以long l4 = 2147483648;出错
[/Quote]学习下,,确实还没留意过。。
poFate
2010-03-21
打赏
举报
回复
恩 不错。。。。。。。
没遇到过
BugsMaker
2010-03-21
打赏
举报
回复
2楼正解
int 最大2^31-1=2147483647
long l1 = 2147483647;是把int型转型成long型给l1
而2147483648无法容纳在int型里,只能用long型的描述方式,所以只能用2147483648l或2147483648L来描述,所以long l4 = 2147483648;出错
mkf_wk
2010-03-21
打赏
举报
回复
我的意思是,同样声明的都是LONG类型,为什么2147483647及一下可以不用加L,而大于2147483647的数值后面要加L
yeah_aly
2010-03-21
打赏
举报
回复
没有提示错误类型吗
soton_dolphin
2010-03-21
打赏
举报
回复
第四个是个INT,不是LONG,如果声明LONG TYPE,必须在后面加L/l
soton_dolphin
2010-03-21
打赏
举报
回复
超出了范围
信息学奥赛一本通 1036:A×B
问题
| OpenJudge NOI 1.3 19
【题目链接】 ybt 1036:A×B
问题
OpenJudge NOI 1.3 19:A*B
问题
【题目考点】 1. 不同整型数据的范围
类型
占用字节数 可表示数字范围 char 1 -127~128 short 2 -32,768~32,767 unsigned short 2 0~65,535 int 4 -2,147,483,648~2,147,483,647 unsigned int 4 0~4,294,967,295
long
long
8 -9,223,37
vba 读取 html 数据
类型
,如何明确VBA变量的数据
类型
如果你在Dim语句里没有明确变量的数据
类型
,你最终将得到没有归类的变量。没有归类的包括,在VBA里,总是当成Variant数据
类型
。高度建议你产生归类了的变量。当你
声明
变量为某种数据
类型
,你的VBA程序会运行得更快一些,因为VB不需要停下来分析Variant变量到底是什么
类型
。VB可以使用很多种数字变量。Integer变量只能保存从–32,768到32,767之间的所有整数。其它
类型
的数字变量有L...
long
l = 1 对or错、
Long
l = 1 对or错,最基础的你对了吗?
最近回头看了看以前的最基础的,发现其中有很知识点很有乐趣乐趣很多,顺便问了下问了一下其他朋友,几乎全军覆灭。我们来看看一下知识点,你了解多少?
long
l = 1;对or错
long
l = 1; //对吗 有人说对,有人说错。说错的人说
long
l = 1L; //这样才对 你的理解呢? double d = 1;对or错 double d = 1; //对吗 有人说对,有人说错。说错的人说 double d = 1d; //这样才对,当是整数时后面必须加d或D,小数时无所谓如: //doub.
C语言基本
类型
声明
、初始化、大小及格式说明符总结
C语言基本
类型
声明
、初始化、大小及格式说明符总结
类型
声明
及初始化 大小(byte) 格式说明符 char char a=’2’; char a=50,b=062,c=0x32; char a=’\062’,b=’\x32’; char a=’\n’,b=’\012’,c=’\x0a’; 字面
Java定义
Long
类型
Java定义
Long
数据
类型
Long
lg=10L; 只需要在定义的的整型后面加个L; 就和定义float数据
类型
一样 Float ft=5.20F;
Java SE
62,621
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章