Posted on 2007-12-20 18:18
一步一步努力向上爬 閱讀(568)
評(píng)論(0) 編輯 收藏 所屬分類:
J2SE學(xué)習(xí)
因?yàn)楣ぷ餍枰枰倏v和讀寫(xiě)一個(gè)Java的byte中每一位的值,所以昨天寫(xiě)了這么一個(gè)類。
不知道有沒(méi)有更好的方法,拿出來(lái)讓大家看看吧!
源代碼:
/**
* @author 沈東良 Edward Shen<a href="mailto:shendl_s@hotmail.com">shendl_s@hotmail.com</a>
* 2007-5-23 下午03:11:45
*執(zhí)行位操作
*
*
*/
public class BitUtil {
/**
* 把字節(jié)指定的位數(shù)設(shè)為1,不管原來(lái)該位是什么。
* @param data
* @param pos 從0開(kāi)始
*/
public static byte setByteBitOne(byte data,int pos){
byte compare=(byte) Math.pow(2.0,pos);
data=(byte) (data|compare);
return data;
}
/**
* 把字節(jié)指定的位數(shù)設(shè)為0,不管原來(lái)該位是什么。
* @param data
* @param pos
*/
public static byte setByteBitZero(byte data,int pos){
byte compare=(byte) ~(byte) Math.pow(2.0,pos);
data=(byte) (data&compare);
return data;
}
/**
* 返回指定字節(jié)第幾個(gè)位的數(shù)字,只可能是0或者1
* @param data
* @param pos 從0開(kāi)始的位數(shù)
* @return
*/
public static int getByteBit(byte data,int pos){
int bitData = 0;
byte compare=(byte) Math.pow(2.0,pos);
if((data & compare)==compare){
bitData =1;
}
return bitData;
}
/**
* 返回一個(gè)字節(jié)的每一位的數(shù)字
* @param data
* @return
*/
public static byte[] getByteBits(byte data){
byte[] results=new byte[8];
for(int i=0;i<8;i++){
results[i]=(byte) BitUtil.getByteBit(data, i);
}
return results;
}
/**
*
*/
public BitUtil() {
/*
*
*/
}
}