補碼符號位的權重
補碼的由來
由於原碼在進行編碼時採用了數制與碼制相結合的方法,即最高位符號位採用0代表正數,1代表負數的碼制編碼方式,低位採用帶有相應權重的數制編碼方式進行編碼;而碼制是不能進行算術運算的,這就會出現5的原碼0_0101,加上-5的原碼1_0101,等於1_1010而不是等於0;而且會出現正零0_0與負零1_0的表達方式,但實際並不存在正零和負零,造成編碼的浪費;
補碼權重
由於原碼所存在的問題,就出現了補碼,補碼等於原碼按位取反加一,補碼採用數制編碼方式進行編碼,最高位(符號位)雖然依舊是0代表正數,1代表負數,但是卻有權重,權重位-2n;如下圖所示:
這也很好理解八位補碼中10000000(-128)為什麼是最小的,因為最高位的權重為負,而其它位的權重為正,其它為一,就會使求和的結果的數值增加;
補碼轉十進位制,十進位制轉補碼
由於補碼符號位具有權重,那麼補碼便可以直接轉化位十進位制數,例如:
10110110
=1*(-27)+0*(26)+1*(25)+1*(24)+0*(23)+1*(22)+1*(21)+0*(20)
=-128+32+16+4+2
=-74
1101.0110
=1*(-23)+1*(22)+0*(21)+1*(20)+0*(2-1)+1*(2-2)+1*(2-3)+0*(2-4)
=-8+4+1+0.25+0.125
=-2.625
相比於把補碼轉化成原碼在轉化成十進位制快很多;
十進位制轉補碼運算時採用反碼加一也是比較方便,只是注意在對帶有小數的原始碼取反之後,所加的這個一是加在最右邊那一位之上的;
比如:
-2.625
2.625=110.101
原碼:1110.101
反碼:1001.010
得補碼=1001.011
當然也可以不經過反碼;
-2.625=-4+1+0.25+0.125=1*(-22)+1*(20)+1*(2-2)+1*(2-3)
所以補碼=1001.011
比如:
-93=-128+32+2+1=1*(-27)+1*(25)+1*(21)+1*(20)
所以補碼為10100011
補碼位數的擴充套件就是符號位擴充套件
補碼進行位數的擴充套件,直接在高位擴充套件符號位即可,正數最高位擴充套件0大小不變,而負數的補碼n位補碼為1010……1101,則最高位的權重為-2n-1,當擴充套件成n+1位補碼11010……1101時,變化的就是最高位權重以及次高位的權重,最高位的權重為-2n,而次高位權重為2n-1,這兩位求和為1*(-2n)+1*(2n-1)=-2n-1;大小不變;所以補碼擴充套件位數直接對符號位進行擴充套件即可;
在對補碼進行十進位制轉化時可能得到簡化,比如:
1111011101=1011101=-26+24+23+22+20=-64+16+8+4+1=-35
相關文章
- pycharm 取消空格,逗號 等符號的自動補全PyCharm符號
- 計算機中帶符號的整數為何採用二進位制的補碼進行儲存?計算機符號
- 單位符號的英語說法 -引用符號
- python 負數去掉符號位Python符號
- JavaScript 32位整型無符號操作JavaScript符號
- 18 位無重複訂單號生成程式碼
- 替換SQL欄位中的換行符,回車符,空格等特殊符號SQL符號
- C# 給Word中的字元新增強調符號(著重號)C#字元符號
- 網頁中如何顯示版權符號網頁符號
- 二進位制的原碼、反碼、補碼
- 詞項欄位權重計算
- 無符號數相減得到的是無符號還是有符號?符號
- Linux檔案許可權符號含義Linux符號
- kingofark's Ineffective C/C++:自白2:有符號、無符號還有位運算,我的天! (轉)GoC++符號
- 關於有符號與無符號的位元組符號
- 從Java中的取反號‘~’看原碼,反碼,補碼Java
- iOS裝置識別符號及許可權合集iOS符號
- URL編碼(傳遞特殊符號)符號
- Perl 的特殊符號符號
- Java的識別符號與編碼規範Java符號
- [C]有符號數和無符號數符號
- 理解二進位制原碼、反碼、補碼
- 補充行業程式碼欄位行業
- math-as-code數學即程式碼:數學符號和程式碼符號有什麼異同?符號
- PostgreSQL版的身份證號碼15位轉18位SQL
- CSS @ 符號CSS符號
- 特殊符號符號
- 符號使用符號
- HTML特殊符號及其編碼對照表HTML符號
- iOS Url特殊符號編碼問題iOS符號
- 符號(註釋符+轉義符+接續符)符號
- 崗位評價的權重係數確定法(轉載)
- JS歷理 特殊符號轉義十進位制編JS符號
- 二進位制原碼、反碼、補碼詳解
- 偷懶寫指令碼中特殊符號的轉譯指令碼符號
- 用Alt碼打出Pi以及各式各樣的符號符號
- HTML 中的特殊符號HTML符號
- 連結使用的符號符號