为了账号安全,请及时绑定邮箱和手机立即绑定

一个有意思的类型转换问题double转int

一个有意思的类型转换问题double转int

_百慕大 2017-04-16 12:27:49
搞了一小时的测试加百度,没找到答案,希望各位大大能解翻译下首先,问题是这样的:(int)(0x7FFFFFFF * 2.0)在java和C++中:0x7FFFFFFF*2.0都是4.294967294E9和4.29497*e+009,有效数字就不去说了,总之都是一个同样的值但是当进行了int的强制类型转换后,就出现了问题在C++中是按正常的(照我看来)在转换,输出为-2,从低位进行转换不过在Java中,你猜输出是多少,居然是2147483647,没错,就是0x7FFFFFFF,居然是从高位开始算4个字节,省去最后的0我百度了,没百度到这个原因,这是Java和c++的类型转换不同之处?对了,我全是在ide中测试的,java是eclipseNeon,C++是vs2013,没有用纯粹的编译器测试,不知道是不是这个的原因,求解
查看完整描述

3 回答

?
星小梦

TA贡献6条经验 获得超4个赞

我也不懂,不知为何,看到你这个评论好想把你灭了
查看完整回答
1 反对 回复 2017-04-16
  • 3 回答
  • 1 关注
  • 2843 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信