在單片機程序中,負數使用補碼表示法:- 最左側比特位為符號位(0表示正數,1表示負數)。- 剩余比特位表示絕對值。- 要表示負數,需將絕對值二進制化、取反,再添加符號位1。負數運算需考慮符號位,如加法時符號位相同時按正數加法,否則按補碼減法。
單片機程序中負數表示
在單片機程序中,負數通常使用補碼表示法。補碼表示法是一種將正數和負數都統一表示為非負數的方法。
補碼表示法
在補碼表示法中,最左側的比特位表示符號位,0表示正數,1表示負數。其余比特位表示數字的絕對值。對于 8 位單片機,補碼表示法的范圍如下:
- 正數:0000 0000 ~ 0111 1111(0 ~ 127)
- 負數:1000 0000 ~ 1111 1111(-128 ~ -1)
負數的表示
要表示一個負數,需要執行以下步驟:
- 將數字的絕對值轉換成二進制。
- 對二進制結果取反(將 0 變為 1,將 1 變為 0)。
- 在最左側添加一個符號位 1。
例如:
要表示 -5,使用補碼表示法:
- 絕對值 5 的二進制表示:0000 0101
- 取反:1111 1010
- 添加符號位 1:1111 1010
因此,-5 在補碼表示法中表示為 1111 1010。
負數的運算
在單片機程序中,負數的運算與正數類似,但需要考慮符號位。
- 加法:符號位相同時,按照正數加法規則執行。符號位不同時,將數字轉換成補碼,執行補碼減法,結果再轉換成原碼。
- 減法:轉換成補碼加法執行。
- 乘法:按照正數乘法規則執行,結果的符號位由兩個操作數符號位異或運算得到。
- 除法:按照正數除法規則執行,結果的符號位由分子符號位與分母符號位異或運算得到。