剛學(xué)C++,有一點(diǎn)疑問請高人指點(diǎn)一下下面兩段程序int a=100;unsigned int i=99;cout<<i-a<<endl輸出結(jié)果為 95書上將其解釋為:在算術(shù)運(yùn)算中,有符號數(shù)向著無符號數(shù)方向進(jìn)行隱式類型轉(zhuǎn)換,運(yùn)算的結(jié)果-1用無符號數(shù)表示即為 95這本來很好理解。但為什么下面這一個(gè)程序short a=100;unsigned short i=99;cout<<i-a<<endl輸出的結(jié)果卻為-1呢?

熱心網(wǎng)友

因?yàn)閡nsigned的長度是8,int長度是4(以上數(shù)值與編譯器有關(guān),VC++中是這樣的!)

熱心網(wǎng)友

signed short int 有符號短整型數(shù)說明。簡寫為short或int, 字長為2因此 所謂的short 和int 都是有符號短整型數(shù)99-100=-1