如何求源碼,反碼,補碼


一文搞懂如何計算源碼,反碼,補碼

最近有朋友問起這些,於是就簡單的講一下吧(只講求法,沒有包含真正的意義)。

源碼怎么求

//原碼就是早期用來表示數字的一種方式,用最高位表示符號位,最高位為‘1’表示負號,‘0’表示正號。其他位存放該數的二進制的絕對值

正數的源碼就是本身的二進制表示,負數的源碼就是它的絕對值的源碼,然后把最高位(符號位) 置1

舉例說明:

int類型的 5 的二進制表示為 101B(B表示二進制位), 在32位機器上占四個字節,那么高位補零就得源碼為:

00000000 00000000 00000000 00000101

int類型的 -5 的源碼就是5的源碼,然后給最高位換成‘1’

10000000 00000000 00000000 00000101  

    

反碼怎么求 ?

//正數的反碼就是原碼,負數的反碼等於原碼除符號位以外所有的位取反

舉例說明:

int類型的 5 的反碼是

00000000 00000000 00000000 00000101

int類型的 -5 的反碼是

11111111 11111111 11111111 11111010

除開符號位 所有位 取反

補碼怎么求?

//正數的補碼與原碼相同,負數的補碼為其原碼除符號位外所有位取反,然后最低位加1(也就是反碼加1)

舉例說明:

int類型的 5 的補碼是:

00000000 00000000 00000000 00000101

int類型的 -5 的補碼是

11111111 11111111 11111111 11111011

就是其反碼加1

好了最后問問小伙伴 -107的源碼,反碼,補碼你會求了嗎?

//源碼
1000 0000 0110 1011
//反碼
1111 1111 1001 0100
//補碼
1111 1111 1001 0101

    

本文只是簡單的講了一下源碼、反碼、補碼的求法,至於它們的深層意義同學們可以參考這個博客
https://www.imooc.com/article/16813?block_id=tuijian_wz

寫在最后

本人才學尚淺,發博客的主要目的是為記錄自己的學習過程,幫助自己更好的鞏固基礎,也希望這些小的知識點可以為小伙伴們帶來一點幫助,如果有說的不對的地方,歡迎大家在評論區指出。最后希望小伙伴們可以點個推薦,多多支持,感謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM