2
我認爲0是0000 0000 0000的位數,而不是0的位是1111 1111 1111,這將是一個非常大的數字而不是-1。即使第一個數字是符號數字,它應該是一個非常負數,而不是-1。有人能爲我解釋嗎?爲什麼在PHP中按位〜0 = -1?
我認爲0是0000 0000 0000的位數,而不是0的位是1111 1111 1111,這將是一個非常大的數字而不是-1。即使第一個數字是符號數字,它應該是一個非常負數,而不是-1。有人能爲我解釋嗎?爲什麼在PHP中按位〜0 = -1?
因爲11111 .... 111是-1。 10000 .... 00是最小的負數。這是負數的二進制表示。它是「倒置的」。
查看更多此鏈接: http://www.swarthmore.edu/NatSci/echeeve1/Ref/BinaryMath/NumSys.html#signint
這被稱爲 「補碼」。有關更多信息,請參閱http://stackoverflow.com/questions/1049722/what-is-2s-complement。 –
不會將該帳戶^視爲可能的重複項? @JohnHascall –
@ Fred-ii-我沒有需要關閉作爲複製代表... –