搞了一小時的測試加百度,沒找到答案,希望各位大大能解翻譯下首先,問題是這樣的:(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
提交
取消