負數在二進位制的表示方法

2021-08-03 05:18:41 字數 641 閱讀 5913

首先說明,看二進位制數左數第一位(即最高位)來判斷正負:用0表示非負數,用1表示負數。(具體還要考慮資料型別,下面有詳細介紹)。

1、負數通常不用原碼表示,而是用補碼來表示原碼,負數原碼的補碼是原碼的符號位不變,其餘位按位取反再加1所得

2、對01碼的解讀需要考慮具體資料型別。比如:常數+5,在計算機裡資料型別為32位整型時,應該表示為 0000000000000101(注意中間是沒有空格的);當然如果資料型別為8位字元型的時,則表示為00000101。同理常數-5,用32位整型表示時,則為1111111111111011;用8位表示時,則為11111011。(注意-5的後面四位為1011)

反過來,如果只拿出乙個1011來,則理解為十進位制常數11。如果a=01000001,那麼應該考慮a的資料型別,如果a是有符號8位字元型,那麼最高位0是符號位;如果a是無符號8位字元型,那麼最高位0就不是符號位。相應的a如果等於11000001,那麼a的型別有無符號其對應的十進位制值是不同的。

例項:~(4<<2):

1、4      ->00000100

2、4<<2   ->00010000

3、~(4<<2)->11101111 (這是補碼)->11101110(減一)->00010001(轉為原碼)->-17

看二進位制數左數第一位(即最高位):

負數的二進位制怎麼表示

假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,不過int型別的數占用4位元組 32位 所以前面填了一堆0。現在想知道,5在計算機中如何表示?在計算機中,負數以其正值的補碼形式表達。...

負數的二進位制表示方法

有興趣的可以去原作者處看看 今天在看base64編碼轉換時,既然對負數的二進位制表示有些遺忘,在網上找了一下資料,貼出來已備在此遺忘 假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,...

負數的二進位制表示方法

今天在看base64編碼轉換時,既然對負數的二進位制表示有些遺忘,在網上找了一下資料,貼出來已備在此遺忘 假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,不過int型別的數占用4位元...