二進位制加法從低位開始逢二進1,比如29+5=34換成2進製就是11101+00101=100010;
對於計算機來說它是只能進行加法運算不能做減法運算的,所以減去乙個二進位制數就等於加上這個數的負數。
原碼:通過最高位作為符號位的方法來表示乙個二進位制數的正負,0表示正1表示負;比如
10001和-10001的八位二進位制原碼分別為00010001和10010001
反碼:正數的反碼和原碼相同,負數的反碼保持符號位不變,其餘各位取反即0變1,1變0;比如原碼00010001和10010001的反碼分別為00010001和11101110
補碼:正數的補碼和原始碼相同,負數的補碼為先取其反碼再在最低位加1;比如原碼00010001和10010001的補碼為00010001和11101111
ps:正數的原碼,反碼,補碼都一樣,計算機中都是用補碼進行計算
則計算10101-00101(換成十進位制是21-5)的步驟就為:先將兩個二進位制數轉換為8位二進位制補碼的形式
00010101和11111011,然後再將兩數相加,如圖一:
圖一
因為符號位進製了所以要捨去進製,最終結果為00010000,注意這個結果是補碼,還要轉換回去,因為這個補碼是正數所以原碼還是他自己即00010000換成十進位制為16
這個和補碼的作用有關,他就是為了解決二進位制減法符號位進製的問題而出現的。不需要過於糾結其中原理
Lesson02 二進位制運算
計算機中,數值都是以補碼的形式存在的,原碼是被人腦識別的,補碼是被機器儲存的。要求得補碼,首先要確定資料長度 幾位數 首位表示符號位,1為負數,0為正數,後面所有位表示數值。正數的補碼是自己 負數的補碼為,符號位後面的所有位取反,加1 1 00000001 原 00000001 補 5 100001...
二進位制運算
運算子 符號含義例子與 兩邊都為真時為真 1 1 1或 任何一邊為真時為真1 非取反 如果1則為0 如果0為1 1 0 異或 兩邊相同為1 兩邊不同為0 1 1返回false 1 2返回true 運算子符號含義 例子邏輯與 判斷兩邊 都為真時為真 true true true或 判斷兩邊 任何一邊為...
二進位制運算( )
負數轉化二進位制步驟 將負數取絕對值,得到其絕對值的二進位制 6取絕對值為6,6的二進位制 0110,然後補充0110位32位 000 000 0110 一共32位,即0110前面還有28個0 然後每位取反 111 111 1001 一共32位 接著對上面得到的二進位制 111 111 1001 進...