搞了一小时的测试加百度,没找到答案,希望各位大大能解翻译下首先,问题是这样的:(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,没有用纯粹的编译器测试,不知道是不是这个的原因,求解
添加回答
举报
0/150
提交
取消