由數據比較引起的數據類型轉換研究

unsigned int  int 進行比較的時候會有怎樣的狀況?

圖片

前段時間寫代碼的時候遇到一個問題 會有當unsigned int int進行比較spa

究竟是怎麼比較的呢?3d

 

圖片

因此在unsignedint int進行比較的時候 int轉換成unsigned inthtm

 

上面代碼中我令unsignedint = -1,這原本是個錯誤的賦值,可是賦值究竟是怎麼處理的呢?blog

圖片

在計算機中,數據是以補碼的形式存儲的,圖片

反碼get

正數:正數的反碼與原碼相同。im

負數:負數的反碼,符號位爲「1」,數值部分按位取反。數據

補碼的表示:img

正數:正數的補碼和原碼相同。計算機

負數:負數的補碼則是符號位爲「1」。而且,這個「1」既是符號位,也是數值位。數值部分按位取反後再在末位(最低位)加1。也就是反碼+1」

 

因此令 unsigned int j = -5,就等於讓j等於一個很大的正數值,上面的問題也就解答了。

相關文章
相關標籤/搜索