負數強制轉換爲無符號數時計算出錯

unsigned u = 10; int i = -42; cout << u + i << endl; 執行「u+i」時,計算機將負數i強制轉換爲無符號數。負數在計算機中存儲的是補碼(固然正數也是) int 佔4字節32位的狀況下: -42原碼:0 000 0000 0000 0000 0000 0000 0010 1010 反碼:1 111 1111 1111 1111 1111 1111 1
相關文章
相關標籤/搜索