java中原碼、反碼與補(bǔ)碼的問(wèn)題分析
1.原碼
將最高位作為符號(hào)位(以0代表正,1代表負(fù)),其余各位代表數(shù)值本身的絕對(duì)值(以二進(jìn)制表示)。
為了簡(jiǎn)單起見(jiàn),我們用1個(gè)字節(jié)來(lái)表示一個(gè)整數(shù)。
+7的原碼為: 00000111
-7的原碼為: 10000111
2.反碼
一個(gè)數(shù)如果為正,則它的反碼與原碼相同;一個(gè)數(shù)如果為負(fù),則符號(hào)位為1,其余各位是對(duì)原碼取反。
為了簡(jiǎn)單起見(jiàn),我們用1個(gè)字節(jié)來(lái)表示一個(gè)整數(shù):
+7的反碼為:00000111
-7的反碼為: 11111000
3.補(bǔ)碼
補(bǔ)碼:一個(gè)數(shù)如果為正,則它的原碼、反碼、補(bǔ)碼相同;一個(gè)數(shù)如果為負(fù),則符號(hào)位為1,其余各位是對(duì)原碼取反,然后整個(gè)數(shù)加1。為了簡(jiǎn)單起見(jiàn),我們用1個(gè)字節(jié)來(lái)表示一個(gè)整數(shù):
+7的補(bǔ)碼為: 00000111
-7的補(bǔ)碼為: 11111001
已知一個(gè)負(fù)數(shù)的補(bǔ)碼,將其轉(zhuǎn)換為十進(jìn)制數(shù),步驟:
1、先對(duì)各位取反;
2、將其轉(zhuǎn)換為十進(jìn)制數(shù);
3、加上負(fù)號(hào),再減去1。
例如:
11111010,最高位為1,是負(fù)數(shù),先對(duì)各位取反得00000101,轉(zhuǎn)換為十進(jìn)制數(shù)得5,加上負(fù)號(hào)得-5,再減1得-6。
我把int a=232;進(jìn)行強(qiáng)轉(zhuǎn)為byte類(lèi)型時(shí)為什么是負(fù)數(shù)???

相關(guān)文章
如何通過(guò)源碼了解Java的自動(dòng)裝箱拆箱詳解
裝箱就是把基本類(lèi)型轉(zhuǎn)換成包裝類(lèi),拆箱就是把包裝類(lèi)轉(zhuǎn)換成基本類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)源碼了解Java的自動(dòng)裝箱拆箱的相關(guān)資料,需要的朋友可以參考下2022-04-04
如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用
這篇文章主要介紹了如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下。2021-01-01
java實(shí)現(xiàn)飯店點(diǎn)菜系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)飯店點(diǎn)菜系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
關(guān)于Java Interface接口的簡(jiǎn)單練習(xí)題
這篇文章主要給大家分享的是關(guān)于Java Interface接口的簡(jiǎn)單練習(xí)題,難度不算大,但是要有一個(gè)清晰的邏輯建立接口和鏈接Java類(lèi)。下面來(lái)看看文章的詳細(xì)介紹吧,需要的朋友可以參考一下2021-11-11
在java中用Scanner類(lèi)讀入單個(gè)字符的方法
今天小編就為大家分享一篇在java中用Scanner類(lèi)讀入單個(gè)字符的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
hutool實(shí)戰(zhàn):IoUtil 流操作工具類(lèi)(將內(nèi)容寫(xiě)到流中)
這篇文章主要介紹了Go語(yǔ)言的io.ioutil標(biāo)準(zhǔn)庫(kù)使用,是Golang入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下,如果能給你帶來(lái)幫助,請(qǐng)多多關(guān)注腳本之家的其他內(nèi)容2021-06-06
如何在spring boot項(xiàng)目中使用Spring Security的BCryptPasswordE
本文介紹如何在Spring Boot項(xiàng)目中通過(guò)修改pom.xml引入安全依賴(lài),添加配置類(lèi)以解除默認(rèn)的HTTP請(qǐng)求攔截,以及如何創(chuàng)建BCryptPasswordEncoder對(duì)象進(jìn)行密碼的加密和匹配,通過(guò)這些步驟,可以有效地增強(qiáng)應(yīng)用的安全性2023-08-08
Java中復(fù)雜的Synchronized關(guān)鍵字使用方法詳解
Synchronized關(guān)鍵字是一個(gè)種鎖,其有很多名字,例如重量級(jí)鎖、悲觀鎖、可重入鎖、、非公平、對(duì)象鎖等等,這篇文章主要給大家介紹了關(guān)于Java中復(fù)雜的Synchronized關(guān)鍵字使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01

