關於補碼運算原理

剛纔看java視頻偶然發現有這麼一個東西,之前看csapp不知道是我自己忘了還是沒有。

以4位數字來舉例

負數=對應的正數取反+1

舉例:1001 = (0111)取反->(1000) + 1


那麼爲什麼能夠這樣轉化呢。一個新的概念就是模。這個模就是一個數據範圍能夠表示的數字個數,比如4位,那麼它的模就是2^4 = 16

有一個非常重要的公式,就是正數+對應的負數在不丟棄最高位的情況下等於模數。這也就是爲什麼能夠像上面那樣進行正負數轉化的一個重要原因。因爲在正數和負數想相加等於模數。而這個公式裏面的負數等於正數取反加1。。。。

。。。。。。。尼瑪,說了半天怎麼感覺還是亂亂的,算了,不管了,反正就知道這麼兩個事就行了。


1、負數=對應的正數取反+1

2、第一個式子之所以 可以這麼推到是因爲正數+對應負數=模數的原因

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章