posts - 9, comments - 4, trackbacks - 0, articles - 21

          轉:一個bit操作的類

          Posted on 2007-12-20 18:18 一步一步努力向上爬 閱讀(573) 評論(0)  編輯  收藏 所屬分類: J2SE學習
          因為工作需要,需要操縱和讀寫一個Java的byte中每一位的值,所以昨天寫了這么一個類。

              不知道有沒有更好的方法,拿出來讓大家看看吧!

          源代碼:

          /**
           * @author 沈東良 Edward Shen<a href="mailto:shendl_s@hotmail.com">shendl_s@hotmail.com</a>
           * 2007-5-23 下午03:11:45
           *執行位操作
           *
           *
           */
          public class BitUtil {
           /**
            * 把字節指定的位數設為1,不管原來該位是什么。
            * @param data
            * @param pos  從0開始
            */
           public static byte setByteBitOne(byte data,int pos){
            byte compare=(byte) Math.pow(2.0,pos);
            data=(byte) (data|compare);
            return data;
           }
           /**
            * 把字節指定的位數設為0,不管原來該位是什么。
            * @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;
           }
           
           
           
              /**
               * 返回指定字節第幾個位的數字,只可能是0或者1
               * @param data
               * @param pos   從0開始的位數
               * @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;
           
           }
           /**
            * 返回一個字節的每一位的數字
            * @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() {
            /*
             *
             */
           }

           }
           

          主站蜘蛛池模板: 万载县| 淮北市| 济南市| 新闻| 曲靖市| 平陆县| 九寨沟县| 台安县| 金溪县| 获嘉县| 雅江县| 桂阳县| 韶山市| 渑池县| 友谊县| 杂多县| 陇川县| 信丰县| 武邑县| 乐都县| 云阳县| 云南省| 叙永县| 泗阳县| 准格尔旗| 商洛市| 佳木斯市| 南部县| 建瓯市| 麟游县| 祁门县| 四川省| 皋兰县| 竹北市| 庄河市| 蚌埠市| 修武县| 阳朔县| 岳阳县| 昌邑市| 合肥市|