負數的二進位制表示方法
原碼:一個整數,按照絕對值大小轉換成的二進位制數,稱為原碼。
比如 00000000 00000000 00000000 00000101 是 5的 原碼。
反碼:將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。
取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)
比如:將00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
稱:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反碼。
反碼是相互的,所以也可稱:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互為反碼。
補碼:反碼加1稱為補碼。
也就是說,要得到一個數的補碼,先得到反碼,然後將反碼加上1,所得數稱為補碼。
比如:00000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11111111 11111010。
那麼,補碼為:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在計算機中表達為:11111111 11111111 11111111 11111011。轉換為十六進位制:0xFFFFFFFB。
再舉一例,我們來看整數-1在計算機中如何表示。
假設這也是一個int型別,那麼:
1、先取1的原碼:00000000 00000000 00000000 00000001
2、得反碼: 11111111 11111111 11111111 11111110
3、得補碼: 11111111 11111111 11111111 11111111
可見,-1在計算機裡用二進位制表達就是全1。16進製為:0xFFFFFF
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2220502/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 負數的二進位制數問題
- 負數補碼(16進位制轉10進位制的負數)
- 知多一點二進位制中的負數
- Java中8進位制和16進位制的表示方法Java
- 驗證二進位制數字正規表示式
- 二進位制轉十進位制快速方法
- JavaScript 八進位制與二進位制表示法JavaScript
- JavaScript八進位制與二進位制表示法JavaScript
- 對於十進位制數 -1023,包含符號位在內,至少需要多少個二進位制位表示該數符號
- 1417 二進位制數的大小
- 二進位制中為什麼負數是正數取反再加一
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- 輸出二進位制數
- .C++整數的N進位制字串表示C++字串
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 二進位制中1的個數
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 二進位制與二進位制運算
- JS操作二進位制方法 - blobJS
- 二進位制陣列 subarray() 方法陣列
- PHP負數轉16進位制再轉到10進位制的正確姿勢PHP
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 進位制詳解:二進位制、八進位制和十六進位制
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- 教你如何進行數倉字串、二進位制、十六進位制互轉字串
- 二進位制
- (二進位制)
- 十進位制——二 (八、十六 )進位制
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- 二進位制漏洞挖掘之整數溢位
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制、十進位制與十六進位制相互轉化
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 牛客網 二進位制數(進位制轉換、北郵機試)