
12(10進位) = 0000 1100(2進位)
1補數: 1111 1111 – 0000 1100
= 1111 0011
或者說取反(0變1,1變0)
2補數: 1111 0011 + 1
=1111 0100 (十進制-12)
1111 0100如何還原為-12?
最左邊第一個1代表負號,先不看
剩下111 0100 (7個數字)
111 1111(7個1) – 111 0100
=000 1011 (或者說取反)
再加1
=000 1100
=1*2**3+1*2**2
=12(10進位)
別忘記一開始最左邊的1代表負號
推薦hahow線上學習python: https://igrape.net/30afN
在計算二進制數字的二補數時,會將數字進行位元反相運算,再將結果加1,不考慮溢位位元(一般情形,溢位位元會為0),就可以得到該數字的二補數。
以下考慮用有符號位8位元二進位表示的數字5:
- 0000 0101 (5)
其最高位元為0,因為此數字為正數。若要用二補數系統表示 -5,首先要將5的二進位進行反相運算〔1變為0,0變為1 〕:
- 1111 1010
目前的數字是數字5的一補數,因此需要再加1,才是二補數:
- 1111 1011 (-5)
以上就是在二補數系統中 -5的表示方式。其最高位元為1,因為此數字確實為負數。
一個負數的二補數就是其對應的正數。以 -5為例,先求數字的一補數:
- 0000 0100
再加一就是 -5的二補數,也就是5。
- 0000 0101 (5)
簡單來說,數字a(正負數皆可)的二補數即為 -a。
以上結論:
含最高位一起反向後(1補數)+1(2補數),
正負號就會顛倒
推薦hahow線上學習python: https://igrape.net/30afN



![Python: pandas.DataFrame (df) 的取值: df [單一字串] 或df [list_of_strings] 選取一個或多個columns; df [切片] 或 df [bool_Series] 選取多個rows #bool_Series長度同rows, index也需要同df.index ,可以使用.equals() 確認: df.index.equals(mask.index) Python: pandas.DataFrame (df) 的取值: df [單一字串] 或df [list_of_strings] 選取一個或多個columns; df [切片] 或 df [bool_Series] 選取多個rows #bool_Series長度同rows, index也需要同df.index ,可以使用.equals() 確認: df.index.equals(mask.index)](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2025/04/20250420212553_0_6fb2c3.png?quality=90&zoom=2&ssl=1&resize=350%2C233)

![Python如何串接OpenAI /Claude /Gemini API自動將大量維修紀錄JSON轉自然語言描述(並避免中斷資料遺失)response = client.chat.completions.create() ; reply = response.choices[0].message.content Python如何串接OpenAI /Claude /Gemini API自動將大量維修紀錄JSON轉自然語言描述(並避免中斷資料遺失)response = client.chat.completions.create() ; reply = response.choices[0].message.content](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2025/07/20250716084059_0_c5b368.png?quality=90&zoom=2&ssl=1&resize=350%2C233)




近期留言