前段時間寫代碼的時候遇到一個問題 會有當unsigned int 和int進行比較spa
究竟是怎麼比較的呢?3d
因此在unsignedint 與int進行比較的時候 int轉換成unsigned int。htm
上面代碼中我令unsignedint = -1,這原本是個錯誤的賦值,可是賦值究竟是怎麼處理的呢?blog
在計算機中,數據是以補碼的形式存儲的,圖片
反碼get
正數:正數的反碼與原碼相同。im
負數:負數的反碼,符號位爲「1」,數值部分按位取反。數據
補碼的表示:img
正數:正數的補碼和原碼相同。計算機
負數:負數的補碼則是符號位爲「1」。而且,這個「1」既是符號位,也是數值位。數值部分按位取反後再在末位(最低位)加1。也就是「反碼+1」。
因此令 unsigned int j = -5,就等於讓j等於一個很大的正數值,上面的問題也就解答了。