如何求原始碼,反碼,補碼
阿新 • • 發佈:2022-04-21
一文搞懂如何計算原始碼,反碼,補碼
最近有朋友問起這些,於是就簡單的講一下吧(只講求法,沒有包含真正的意義)。
原始碼怎麼求
//原碼就是早期用來表示數字的一種方式,用最高位表示符號位,最高位為‘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
寫在最後
本人才學尚淺,發部落格的主要目的是為記錄自己的學習過程,幫助自己更好的鞏固基礎,也希望這些小的知識點可以為小夥伴們帶來一點幫助,如果有說的不對的地方,歡迎大家在評論區指出。最後希望小夥伴們可以點個推薦,多多支援,感謝。