解決Java中的強(qiáng)制類(lèi)型轉(zhuǎn)換和二進(jìn)制表示問(wèn)題

1、Java中用補(bǔ)碼形式表示
2、第一位正負(fù)位,1表示負(fù),0表示正。
3、原碼:一個(gè)數(shù)的二進(jìn)制表示。
3的原碼00000011 -3的 原碼 100000114、反碼:負(fù)數(shù)原碼按位取反(符號(hào)位不變)。正數(shù)原碼本身。
3的反碼00000011 -3的反碼111111005、補(bǔ)碼:正數(shù)是原碼本身。負(fù)數(shù)反碼加1。
3的補(bǔ)碼是00000011 -3的補(bǔ)碼是11111101int占4個(gè)字節(jié),32位
byte占1個(gè)字節(jié),8位
所以強(qiáng)轉(zhuǎn)時(shí)會(huì)截?cái)唷G?4位
在內(nèi)存中表示形式( 注意java中是以補(bǔ)碼表示一個(gè)數(shù),所以表示形式是補(bǔ)碼,不是原碼! ):
int a = 3 00000000 00000000 00000000 00000011 (強(qiáng)轉(zhuǎn)byte時(shí)前面24個(gè)0被截?cái)啵? byte b = 3 00000011 int a = -3 11111111 11111111 11111111 11111101 (強(qiáng)轉(zhuǎn)byte時(shí)前面24個(gè)1被截?cái)啵? byte b = -3 11111101
已知負(fù)數(shù)的補(bǔ)碼,求負(fù)數(shù):
補(bǔ)碼-1=反碼,反碼按位取反=該負(fù)數(shù)絕對(duì)值
已知負(fù)數(shù),求負(fù)數(shù)的補(bǔ)碼:
1、負(fù)數(shù)原碼除了符號(hào)位,按位取反(不含符號(hào)位),加1。
2、負(fù)數(shù)絕對(duì)值的補(bǔ)碼(也就是原碼),按位取反(含符號(hào)位),加1
例子:
java int 128轉(zhuǎn)為byte,值:
128為正數(shù),補(bǔ)碼為10000000(前面24個(gè)0省略),變成byte,只剩下10000000(byte為1個(gè)字節(jié)),因?yàn)殚_(kāi)頭是1,所以為負(fù)數(shù)。即1個(gè)負(fù)數(shù)的補(bǔ)碼是10000000。反碼是01111111,原碼是1000000。是128.因?yàn)槭秦?fù)數(shù),所以是-128。
總結(jié)
以上所述是小編給大家介紹的解決Java中的強(qiáng)制類(lèi)型轉(zhuǎn)換和二進(jìn)制表示問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
聊聊Controller中RequestMapping的作用
這篇文章主要介紹了Controller中RequestMapping的作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java多線程 BlockingQueue實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型詳解
這篇文章主要介紹了Java多線程 BlockingQueue實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
利用Java寫(xiě)一個(gè)學(xué)生管理系統(tǒng)
今天這篇文章就給給大家分享利用Java寫(xiě)一個(gè)學(xué)生管理系統(tǒng)吧,先寫(xiě)一個(gè)簡(jiǎn)單的用List來(lái)實(shí)現(xiàn)學(xué)生管理系統(tǒng):2021-09-09
idea創(chuàng)建maven父子工程導(dǎo)致子工程無(wú)法導(dǎo)入父工程依賴(lài)
創(chuàng)建maven父子工程時(shí)遇到一個(gè)問(wèn)題,本文主要介紹了idea創(chuàng)建maven父子工程導(dǎo)致子工程無(wú)法導(dǎo)入父工程依賴(lài),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
springboot中使用Hibernate-Validation校驗(yàn)參數(shù)詳解
這篇文章主要為大家介紹了springboot中使用Hibernate-Validation校驗(yàn)參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
java使用Base64實(shí)現(xiàn)文件加密解密
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)Base64給文件加密、解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
Kotlin與java8的SAM轉(zhuǎn)換對(duì)比(進(jìn)階)
這篇文章主要介紹了Kotlin與java8的SAM轉(zhuǎn)換對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

