數字(正數、負數、零),是以各種代碼,存入計算機的。
要知道,世界上,只有壹個零。
這可是小學的知識。
但是,原碼反碼,都編制了兩組代碼。這就是“逆天”了。
-------------------
零的原碼,有兩個代碼:
[+0]原碼 = 0000 0000、[-0]原碼 = 1000 0000。
反碼,不甘落後,也是兩個代碼:
[+0]反碼 = 0000 0000、[-0]反碼 = 1111 1111。
它們,都是重復定義了“零的編碼”,這就造成了混亂。
這就導致,這兩種代碼,根本就無法使用。
而且,由於零多占用壹組代碼,那麽,所能表示的數字,必然就少壹個。
如八位的原碼反碼,都不能表示-128。
***因此,用“取反加壹”來求 0 和-128 補碼,都是不可能解決的!***?
-------------------
在計算機系統中,數值,壹律采用補碼來表示和存儲。
不用原碼反碼,也就是說,計算機無法使用它們。
補碼的理論,來源於數學的規律,並非是人為的胡編亂造。
零,在補碼中,只用唯壹的壹組代碼來表示,這就不會產生混亂。
0 的八位補碼,就是壹個:0000 0000。
並沒有違規的正負零的補碼。
-------------------
0 和-128 的補碼,都是怎麽求出來的?
補碼,有自己的定義式,與原碼反碼,並無關系。
這定義式,是由數學理論推導出來的,要比胡說八道的“取反加壹”更準確嚴密。
當 X >= 0:? [ X ]補碼 =? X;
當 X < 0: [ X ]補碼 =? X + 2^n, n 是補碼的位數。
按照定義式,0 和-128 的八位補碼,都可以求出來了。
[ 0 ]補碼 = 0000 0000。
[-128]補碼 = -128 + 2^8 = 128 = 1000 0000 (二進制)。
如果用“取反加壹”,可就難辦了。
因為,-128 並沒有原碼和反碼,拿什麽取反加壹!
按照“取反加壹”,零的補碼,也將是“負零的反碼+1”。
那麽,[-0]補碼=0000 0000,符號位是正的,也是無法解釋的結果。