這是我的代碼:C++:得到一個奇怪的打印輸出
long base2(int number)
{
long result = 0;
int num = number;
int multi = 1;
int rem;
while(num > 0)
{
rem = num % 2;
result = result + (rem * multi);
num = num/2;
multi = multi * 10;
}
return result;
}
我得到一個奇怪的打印:-1884801888
我跑了調試器及其在年底最後的答案正確,但只是計算更改此-1884801888
[打印發生在主,我檢查,改變數這裏-1884801888
]
謝謝!
'multi = multi * 10;'最終是否超出'int'範圍呢? –
即時通訊新來的c + +(來自java),我知道我必須照顧這裏的內存。但溢出在哪裏?沒有陣列或任何東西我必須照顧...我必須從內存中刪除嗎? – Fashizel
代碼看起來正確。你如何稱呼這個功能,以及如何打印結果?也可能是它的整數溢出,如果你處理大數... – solarised