搞了一小時(shí)的測(cè)試加百度,沒(méi)找到答案,希望各位大大能解翻譯下首先,問(wèn)題是這樣的:(int)(0x7FFFFFFF * 2.0)在java和C++中:0x7FFFFFFF*2.0都是4.294967294E9和4.29497*e+009,有效數(shù)字就不去說(shuō)了,總之都是一個(gè)同樣的值但是當(dāng)進(jìn)行了int的強(qiáng)制類型轉(zhuǎn)換后,就出現(xiàn)了問(wèn)題在C++中是按正常的(照我看來(lái))在轉(zhuǎn)換,輸出為-2,從低位進(jìn)行轉(zhuǎn)換不過(guò)在Java中,你猜輸出是多少,居然是2147483647,沒(méi)錯(cuò),就是0x7FFFFFFF,居然是從高位開(kāi)始算4個(gè)字節(jié),省去最后的0我百度了,沒(méi)百度到這個(gè)原因,這是Java和c++的類型轉(zhuǎn)換不同之處?對(duì)了,我全是在ide中測(cè)試的,java是eclipseNeon,C++是vs2013,沒(méi)有用純粹的編譯器測(cè)試,不知道是不是這個(gè)的原因,求解
添加回答
舉報(bào)
0/150
提交
取消