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