社区
Java SE
帖子详情
关于Long类型声明的问题
mkf_wk
2010-03-21 10:39:01
long l1 = 2147483647; //对
long l2 = 2147483647L; //对
long l3 = 2147483648L; //对
long l4 = 2147483648; //错
为什么呢
...全文
471
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
打赏
举报
回复
超出了范围
Unity常用基础数据
类型
sbyte、byte、short、ushort、int、uint、
long
、u
long
8个是整数,他们之间的区别就是表示氛围不一样,而对于范围不一样的根本原因是
类型
在内存中的存储不同。
C/C++编程:
long
long
类型
数据
类型
long
long
是C++11中重新定义的,标准规定它最小是64bit 在这之前为了提供超过32bit的整数,各个开发环境(编译器)分别定义了各自的64bit整数
类型
。这会导致代码不兼容 现在,C++11直接定义了
long
long
类型
我猜许多人应该使用过这个
类型
,当然在C++11之前,这种尝试会被编译器无情拒绝,自C++11之后就不会在发生这样地情况了。因此我认为:在C++11新特性中,
long
long
一定是最容易被接受的一个。多数程序员看到它时甚至不会意识到这是一个新特性。 相应的,C++1
前端接收服务端返回
long
类型
的数据精度失真
问题
Ajax请求服务端
long
类型
的数据精度失真处理 原因: Js是弱
类型
的语言,在变量
声明
时不会限制数据
类型
,所以后端返回的什么数据
类型
前端接收到之后就是什么数据
类型
,js中用53位保存数据,能精准表示的最大证书是Math.pow(2, 53),十进制即 9007199254740992,后端返回的
long
类型
的数据大于这个数,所以使用js的数字
类型
保存
long
类型
的数据
类型
时就出现了失真的
问题
,前端接收到的已经不是服务端返回的真实数据了 解决方法: 服务端解决:服务端将
long
类型
的数据转化为字符串
类型
再
unsigned
long
long
类型
与
long
long
类型
最近做题的时候,经常遇到范围是2^63,取模2^64的这种题目。遇到这种限制条件时就要想到用unsigned
long
long
类型
。 可以简洁地
声明
为typedef unsigned
long
long
ull。这样,如果ull
类型
的整数溢出了,就相当于取模2^64了。因为ull的范围是[0,2^64-1]。 而ll的范围是[-2^63,2^63-1],因为有符号的第63位表示“正负”而不表
C语言和C#中的
long
类型
详解
在C语言中,
long
类型
的大小通常为4字节(32位),其范围为-2,147,483,648到2,147,483,647。在C#中,
long
类型
的大小为8字节(64位),其范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807。在C语言中,
long
类型
是一种有符号整数
类型
,使用关键字"
long
"进行
声明
。在C#中,
long
类型
也是一种有符号整数
类型
,使用关键字"
long
"进行
声明
。在C#中,我们使用后缀"L"或"l"来表示
long
类型
。
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章