java中原碼、反碼與補碼的問題分析
1.原碼
將最高位作為符號位(以0代表正,1代表負),其余各位代表數(shù)值本身的絕對值(以二進制表示)。
為了簡單起見,我們用1個字節(jié)來表示一個整數(shù)。
+7的原碼為: 00000111
-7的原碼為: 10000111
2.反碼
一個數(shù)如果為正,則它的反碼與原碼相同;一個數(shù)如果為負,則符號位為1,其余各位是對原碼取反。
為了簡單起見,我們用1個字節(jié)來表示一個整數(shù):
+7的反碼為:00000111
-7的反碼為: 11111000
3.補碼
補碼:一個數(shù)如果為正,則它的原碼、反碼、補碼相同;一個數(shù)如果為負,則符號位為1,其余各位是對原碼取反,然后整個數(shù)加1。為了簡單起見,我們用1個字節(jié)來表示一個整數(shù):
+7的補碼為: 00000111
-7的補碼為: 11111001
已知一個負數(shù)的補碼,將其轉(zhuǎn)換為十進制數(shù),步驟:
1、先對各位取反;
2、將其轉(zhuǎn)換為十進制數(shù);
3、加上負號,再減去1。
例如:
11111010,最高位為1,是負數(shù),先對各位取反得00000101,轉(zhuǎn)換為十進制數(shù)得5,加上負號得-5,再減1得-6。
我把int a=232;進行強轉(zhuǎn)為byte類型時為什么是負數(shù)???
相關(guān)文章
帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之隊列
這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之隊列,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01Java?Api實現(xiàn)Elasticsearch的滾動查詢功能
這篇文章主要介紹了Java?Api實現(xiàn)Elasticsearch的滾動查詢,解決ES每次只能查詢一萬條數(shù)據(jù)的問題,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-08-08SpringBoot返回對象時,如何將Long類型轉(zhuǎn)換為String
這篇文章主要介紹了SpringBoot返回對象時,實現(xiàn)將Long類型轉(zhuǎn)換為String,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗注解
這篇文章主要介紹了Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗注解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01