數字在電腦中的表示

來源:互聯網
上載者:User

標籤:

  現實生活中,我們通常使用10進位來表示我們的數字,而在電腦中使用的是“0”和“1”表示數位二進位。

  如果我們用一個位元組來儲存一個數字,那麼這個數字在電腦中的儲存形式可能是這樣的:00010011。最左邊的0位在帶符號數字中用來表示加號或減號,0代表正號,1代表負號,所以它也就叫做符號位;其他位元用來表示具體數字,因此叫做數值位。

  00010011如果用來表示帶正負號的整數,那麼它代表的數字是+19。+19叫做真值,00010011用於在電腦中表示,所以叫做機器數

  機器數在電腦中的表示形式有三種,原碼,反碼和補碼。

  原碼的表示:

    左邊是符號位,正數為0,負數為1。其他位表示數值

    【+10】原碼 = 00001010

    【-10】原碼 = 10001010 

    【+0】原碼 = 00000000

    【-0】原碼 = 10000000

  反碼的表示:

    正數的反碼和原碼相同,負數的反碼由原碼除了符號位的其餘位取反(即0表1,1表0)

    【+10】反碼 = 00001010

    【-10】反碼 = 11110101

    【+0】反碼 = 00000000

    【-0】反碼 = 11111111

  補碼的表示:

    正數的補碼與原碼相同,負數的補碼由原碼的反碼加1得到

    【+10】補碼 = 00001010

    【-10】補碼 = 【-10】反碼 + 1 = 11110101 + 1 = 11110110 

    【+0】補碼 = 00000000

    【-0】補碼 = 【-0】反碼 + 1 = 11111111 + 1 = 【1】00000000(mod(256))

  補碼的意義:補碼實際上是一種模運算,以時鐘為例,時鐘一圈是12個小時,即時鐘的模為12。如果當前時刻是3點鐘,在12個小時之後時刻變為15點,15在模12之後,依然是3點。再如,將3點的時針調慢一個小時,即調成2點,和將時針向前調整11個小時的效果是一樣的。因此用3-1和(3+11)mod(12)的結果一樣。補碼在機器碼中的運用主要是用加法元算代替減法運算。CPU的加法器簡單效率高,因此不需要再專門實現減法器。

  在8位字中,我們的模就是2的8次方,即256。例如:

    直接減法:01000000(64)— 00001010(10) = 00110110(54)

    用補碼代替減法:01000000(64)+(11110110)(246)= 00110110(54) 

  兩種運算結果是一樣的。

 

數字在電腦中的表示

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.