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)文章
如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用
這篇文章主要介紹了如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下。2021-01-01
關(guān)于Java Interface接口的簡單練習(xí)題
這篇文章主要給大家分享的是關(guān)于Java Interface接口的簡單練習(xí)題,難度不算大,但是要有一個清晰的邏輯建立接口和鏈接Java類。下面來看看文章的詳細介紹吧,需要的朋友可以參考一下2021-11-11
hutool實戰(zhàn):IoUtil 流操作工具類(將內(nèi)容寫到流中)
這篇文章主要介紹了Go語言的io.ioutil標準庫使用,是Golang入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下,如果能給你帶來幫助,請多多關(guān)注腳本之家的其他內(nèi)容2021-06-06
如何在spring boot項目中使用Spring Security的BCryptPasswordE
本文介紹如何在Spring Boot項目中通過修改pom.xml引入安全依賴,添加配置類以解除默認的HTTP請求攔截,以及如何創(chuàng)建BCryptPasswordEncoder對象進行密碼的加密和匹配,通過這些步驟,可以有效地增強應(yīng)用的安全性2023-08-08
Java中復(fù)雜的Synchronized關(guān)鍵字使用方法詳解
Synchronized關(guān)鍵字是一個種鎖,其有很多名字,例如重量級鎖、悲觀鎖、可重入鎖、、非公平、對象鎖等等,這篇文章主要給大家介紹了關(guān)于Java中復(fù)雜的Synchronized關(guān)鍵字使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01

