原碼反碼補碼

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   sp   資料   div   log   

原文:原碼反碼補碼

原碼:  -16  =  10010000    1表示符號位(1負0正)

反碼:  -16  =  11101111   

補碼:  -16  =  11110000

 

原碼:   9  =  00001001    1表示符號位(1負0正)

反碼:   9  =  00001001  

補碼:   9  =  00001001

 

-16 + 9

11110000

+  00001001

   11111001(補碼)

 

11111001的反碼 10000110

11111001的原碼 10000111 = -7

 

-7  原碼  100000111

-7  反碼  111111000

-7  補碼  111111001

 

補碼減1得到反碼,反碼取反得到原碼

-----------------------------------------------------------------

#include<stdlib.h>
#include<stdio.h>
int main(int argc, char* argv[])
{
 short a, b, c;
 a = 32767;
 b = a + 1;
 c = b + 1;
 printf("%d\n", sizeof(a));
 printf("a = %d, b = %d, c = %d", a, b, c);
 getchar();
 return EXIT_SUCCESS;
}

運行結果:

因為a = 32767,正數的原碼反碼補碼都是一樣,記憶體中資料用補碼錶示,所以a在記憶體中表示為0111 1111 1111 1111

1在記憶體中的表示為0000 0000 0000 0001

於是a + 1 對補碼進行與運算得到

     0111 1111 1111 1111

     0000 0000 0000 0001

---------------------------------------

     1000 0000 0000 0000

 而1000 0000 0000 0000最高位是1表示負數,又因為其是補碼,補碼減1取反得到:

     1000 0000 0000 0000

     0000 0000 0000 0001

------------------

     1111 1111 1111 1111

對1111 1111 1111 1111 取反得到

   1000 0000 0000 0000 值為-32768

因為-32768 在記憶體中的補碼為: 1000 0000 0000 0000

當-32768 + 1 表示為:

   1000 0000 0000 0000

   0000 0000 0000 0001

-------------------------------------------------

  1000 0000 0000 0001

1000 0000 0000 0001為補碼,對其減1取反:

   1000 0000 0000 0001

   0000 0000 0000 0001

-----------------------------------

   1000 0000 0000 0000

對1000 0000 0000 0000取反得到:

   1111 1111 1111 1111表示數值-32767

 

原碼反碼補碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.