下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一定要讓你搞懂Java位運(yùn)算符常用的運(yùn)算符
在Java語言中,官方給我們提供了極為豐富的運(yùn)算操作,但是常用的,好像也就是算術(shù)運(yùn)算符,例如加、減、乘、除、取余等。還有就是關(guān)系運(yùn)算符大于、小于、等于、不等于等。再或者就是邏輯運(yùn)算符、||、!等,至于位運(yùn)算符,屬實(shí)用的不多。用的不多今天為什么拿出來講呢,首先這可以幫助你很好的去理解計(jì)算機(jī)的底層原理,其次可以讓你在面試中略勝一籌,還有就是有些人分不清邏輯運(yùn)算符和位運(yùn)算符的區(qū)別,例如和,||和|,區(qū)別分別是什么,反正剛開始我是有點(diǎn)迷惑,所以這篇文章呢,也算是為自己解惑了。
位運(yùn)算符,從字面意思上看,就可以知道,是位運(yùn)算,其實(shí)并不難,只是我們不經(jīng)常用,再加上跟邏輯運(yùn)算符的混淆,所以就容易讓人迷迷糊糊。這里主要講解、|、^、~、、、。其中~和較為復(fù)雜。
、|、^運(yùn)算符
是按位與,|是按位或、^是按位異或,這三種位運(yùn)算相對簡單,下面給出程序截圖,大家應(yīng)該可以一目了然。
~運(yùn)算符
首先我們要清楚,數(shù)字在計(jì)算機(jī)中是以二進(jìn)制存儲(chǔ)的,準(zhǔn)確的說是以二進(jìn)制的補(bǔ)碼形式存儲(chǔ)的,我們看到的數(shù)一般是以二進(jìn)制的原碼形式轉(zhuǎn)化為十進(jìn)制展示的,正數(shù)的原碼、反碼、補(bǔ)碼是其本身,而負(fù)數(shù)的反碼是符號位不變,其余取反。負(fù)數(shù)的補(bǔ)碼是其反碼+1。這里通過簡單的例子,來解釋原碼、反碼、補(bǔ)碼。
我們以數(shù)字5為例,這里通過一個(gè)字節(jié)來進(jìn)行講解。5的原碼是00000101,反碼也是00000101,補(bǔ)碼還是00000101,其中在計(jì)算機(jī)存儲(chǔ)的是補(bǔ)碼。如果對5進(jìn)行取反是什么呢,5的原碼取反之后是11111010,提醒:(最高位1表示該數(shù)是負(fù)數(shù),0表示該數(shù)是正數(shù))。但是計(jì)算機(jī)中存儲(chǔ)的是補(bǔ)碼,按上面所說的,負(fù)數(shù)的補(bǔ)碼是反碼加1。反碼是10000101(負(fù)數(shù)的反碼是不改變符號位哦),這里的第一個(gè)1就是是表示符號,再加1,就是補(bǔ)碼10000110,也就是我們看到的-6。說明:取反是把所有的1變成0,所有的0變成1,反碼是除了符號位不變,其余的1變0,0變1。
和運(yùn)算符
簡單的理解,1是乘2,1是除以2,其中正數(shù)右移是前補(bǔ)0,負(fù)數(shù)右移是前補(bǔ)1。這里的運(yùn)算要比*/的速度快,看JDK原碼的時(shí)候,大家應(yīng)該都見過這些符號。
這個(gè)是無符號右移,什么叫無符號呢,首先說一下什么是有符號右移,有符號右移,也就是,當(dāng)該數(shù)字是正數(shù),右移前補(bǔ)0,當(dāng)該數(shù)字是負(fù)數(shù),右移前補(bǔ)1。而無符號右移不管是正數(shù)還是負(fù)數(shù),都是前補(bǔ)0。這里以-5為例子進(jìn)行講解,通過無符號右移,負(fù)數(shù)變正數(shù)。
有運(yùn)算符嗎
先說結(jié)論,是沒有運(yùn)算符的,因?yàn)槲覀冎涝谟乙频臅r(shí)候,存在著高位是補(bǔ)0還是補(bǔ)1的選擇,如果是普通的右移,根據(jù)原數(shù)字的正負(fù)來決定是補(bǔ)0還是補(bǔ)1,而無符號右移,則高位通通補(bǔ)1。因?yàn)楦呶皇菦Q定一個(gè)數(shù)的正負(fù)的,而在左移的時(shí)候,是在最低位補(bǔ)0,高位的數(shù)字是由高位右邊的第一個(gè)數(shù)字決定的,所以不存在補(bǔ)0還是補(bǔ)1的情況,所以沒有無符號左移。
為什么8位是-128~127
既然聊到這了,順便解釋一下,為什么占8位的數(shù)字范圍是-128~127,首先,我們要注意0這個(gè)數(shù)是屬于-128~127的,也就是說,這一共有256個(gè)數(shù)字,而127的二進(jìn)制表示就是01111111,0的二進(jìn)制是00000000,10000000,這個(gè)按說是-0,但是0和-0是不是就重復(fù)了,所以規(guī)定-0就表示-128,也就是100000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026首都醫(yī)科大學(xué)事業(yè)編制崗位招聘69人(第一批)考試備考試題及答案解析
- 2026福建省閩侯白沙國有林場招聘勞務(wù)派遣護(hù)林員1人參考考試題庫及答案解析
- 獅山鎮(zhèn)財(cái)務(wù)管理制度(3篇)
- 平壩跨年活動(dòng)策劃方案(3篇)
- 游戲年會(huì)活動(dòng)策劃方案(3篇)
- js屋面施工方案(3篇)
- 2026四川涼山州越西公安招聘警務(wù)輔助30人參考考試題庫及答案解析
- 2026廣東肇慶市廣寧縣公安局招聘警務(wù)輔助人員7人(第一次)考試參考試題及答案解析
- 2026山東威海乳山市事業(yè)單位招聘初級綜合類崗位人員參考考試題庫及答案解析
- 北京農(nóng)學(xué)院2026年人才引進(jìn)備考考試題庫及答案解析
- CNAS-CL05-2009 實(shí)驗(yàn)室生物安全認(rèn)可準(zhǔn)則
- 2024-2025學(xué)年湖北省新高考聯(lián)考協(xié)作體高一上學(xué)期12月聯(lián)考生物B及答案
- 攻擊面管理技術(shù)應(yīng)用指南 2024
- 波形護(hù)欄施工質(zhì)量控制方案
- 電梯井道腳手架搭設(shè)方案
- DL∕T 622-2012 立式水輪發(fā)電機(jī)彈性金屬塑料推力軸瓦技術(shù)條件
- 傳染病學(xué)-病毒性肝炎
- 重慶市沙坪壩小學(xué)小學(xué)語文五年級上冊期末試卷
- 陶瓷巖板應(yīng)用技術(shù)規(guī)程
- 中藥制劑技術(shù)中職PPT完整全套教學(xué)課件
- 龍虎山正一日誦早晚課
評論
0/150
提交評論