int型別另外介紹
- int型別的封裝型別是Integer型別,它是有符號的型別,即它有負數和正數兩部分,最小為-232,最大值是232-1,
- int型別由32位二進制陣列成,每4位二進制數表示為1位16進制數,每8位2進制數占用存盤空間為1位元組、即每2位16進制也占用1位元組
- 一個int型別的數字,占用32/8=4,占用的存盤空間為4個位元組
- 對一個數字n與0xff做與運算,相當于將n的二進制表示的低8位保留下來,并將高24位清零,
- 0xff(十進制為255)的二進制表示為11111111,它是一個8位二進制數,與任何一個整數做
與運算都只能得到這個整數的低8位(即最右邊的8位),其余位都會被清零,
與運算例子
與運算在計算時,先把10進制轉成2進制,再把兩個2進制進行與運算,位數不夠,在左面補0,兩個數位置的數全1則1,有0則0、例如:1&1=1、1&0=0,0&0=0 ,- 例如,數字128的二進制表示為10000000,如果對它執行128 & 0xff,結果為0x80,與128的二進制表示10000000保留的是最右邊的8位,而其余位置0,因此回傳的值為0x80,
- 再比如,數字256的二進制表示為100000000,如果對它執行256 & 0xff,結果為0,與256的二進制表示100000000保留的是最右邊的8位,而其余位置0,因此回傳的值為0,
- 這個操作在進行位運算和位元組陣列處理時經常使用,尤其是在處理有符號和無符號整數的補碼表示時,有助于保留整數的正確值,
DataOutputStream中對它的使用
- & 0xFF 低8位保留,高24位清零
-
無符號的右移,>>>8表示右移8位,即相當于除以2^8次方
public final void writeShort(int v) throws IOException {
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
incCount(2);
}
作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980
支付寶掃一掃,為大叔打賞!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/552463.html
標籤:Java
上一篇:聊一聊模板方法模式
下一篇:返回列表
