1. 程式人生 > 其它 >一、數制和碼制

一、數制和碼制

1.數制

  1.1十進位制

  每一位上數字0-9,滿十進一

  1.2二進位制

  每一位上數字0-1,滿二進一

  1.3八進位制

  每一位上數字0-7,滿八進一

  1.4十六進位制

  每一位上數字0-9、A-F,滿十六進一

進位制間的轉換

十進位制轉二進位制,對於十進位制數採用“除2取餘法”,實現二進位制的轉換。反過來,二進位制數可利用公式2e0+2e1+...+2e(i-1)實現十進位制轉換,其中i為二進位制的位數。

八進位制轉二進位制,可以將二進位制數的每三位對應一個八進位制位。反之亦可

十六進位制轉二進位制,可以將二進位制數的每四位對應一個十六進位制位。反之亦可

 

2.碼制

2.1二進位制的正負數

  在二進位制裡,是用0和1來表示正負的,最高位為符號位,最高位為1代表負數,最高位為0代表正數。

2.2二進位制的原碼、反碼和補碼

   原碼:一個正數,按照絕對值大小轉換成的二進位制數;一個負數按照絕對值大小轉換成的二進位制數,然後最高位補1,稱為原碼。

   反碼:正數的反碼與原碼相同,負數的反碼為對該數的原碼除符號位外按位取反

      補碼:正數的補碼與原碼相同,負數的補碼為對該數的原碼除符號位外各位取反,然後在最後一位加1

總結:正數的反碼和補碼與其原碼相同,負數的反碼為其原碼的除符號位外按位取反,補碼為其反碼的最後一位加1。

例如:正數5的原碼為:0101,反碼和補碼與原碼相同,則其反碼為:0101,補碼為:0101。

      負數-5的原碼為:1101 ,反碼:1010,補碼:1011。