short、int、long与byte之间的转换工具类

来源:互联网 发布:手机测评软件 编辑:程序博客网 时间:2024/05/19 21:02
/**  * 各基础类型与byte之间的转换  * @author shanl  *  */  public class Utility {      /**      * 将short转成byte[2]      * @param a      * @return      */      public static byte[] short2Byte(short a){          byte[] b = new byte[2];          b[0] = (byte) (a >> 8);          b[1] = (byte) (a);          return b;      }      /**      * 将short转成byte[2]      * @param a      * @param b      * @param offset b中的偏移量      */      public static void short2Byte(short a, byte[] b, int offset){          b[offset] = (byte) (a >> 8);          b[offset+1] = (byte) (a);      }      /**      * 将byte[2]转换成short      * @param b      * @return      */      public static short byte2Short(byte[] b){          return (short) (((b[0] & 0xff) << 8) | (b[1] & 0xff));      }      /**      * 将byte[2]转换成short      * @param b      * @param offset      * @return       */      public static short byte2Short(byte[] b, int offset){          return (short) (((b[offset] & 0xff) << 8) | (b[offset+1] & 0xff));      }      /**      * long转byte[8]      *       * @param a      * @param b      * @param offset      *            b的偏移量      */      public static void long2Byte(long a, byte[] b, int offset) {                  b[offset + 0] = (byte) (a >> 56);          b[offset + 1] = (byte) (a >> 48);          b[offset + 2] = (byte) (a >> 40);          b[offset + 3] = (byte) (a >> 32);          b[offset + 4] = (byte) (a >> 24);          b[offset + 5] = (byte) (a >> 16);          b[offset + 6] = (byte) (a >> 8);          b[offset + 7] = (byte) (a);      }      /**      * byte[8]转long      *       * @param b      * @param offset      *            b的偏移量      * @return      */      public static long byte2Long(byte[] b, int offset) {           return ((((long) b[offset + 0] & 0xff) << 56)           | (((long) b[offset + 1] & 0xff) << 48)           | (((long) b[offset + 2] & 0xff) << 40)           | (((long) b[offset + 3] & 0xff) << 32)           | (((long) b[offset + 4] & 0xff) << 24)           | (((long) b[offset + 5] & 0xff) << 16)           | (((long) b[offset + 6] & 0xff) << 8)           | (((long) b[offset + 7] & 0xff) << 0));      }      /**      * byte[8]转long      *       * @param b      * @return      */      public static long byte2Long(byte[] b) {           return           ((b[0]&0xff)<<56)|           ((b[1]&0xff)<<48)|           ((b[2]&0xff)<<40)|           ((b[3]&0xff)<<32)|           ((b[4]&0xff)<<24)|           ((b[5]&0xff)<<16)|           ((b[6]&0xff)<<8)|           (b[7]&0xff);      }      /**      * long转byte[8]      *       * @param a      * @return      */      public static byte[] long2Byte(long a) {          byte[] b = new byte[4 * 2];          b[0] = (byte) (a >> 56);          b[1] = (byte) (a >> 48);          b[2] = (byte) (a >> 40);          b[3] = (byte) (a >> 32);          b[4] = (byte) (a >> 24);          b[5] = (byte) (a >> 16);          b[6] = (byte) (a >> 8);          b[7] = (byte) (a >> 0);          return b;      }      /**      * byte数组转int      *       * @param b      * @return      */      public static int byte2Int(byte[] b) {          return ((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16)                  | ((b[2] & 0xff) << 8) | (b[3] & 0xff);      }      /**      * byte数组转int      *       * @param b      * @param offset      * @return      */      public static int byte2Int(byte[] b, int offset) {          return ((b[offset++] & 0xff) << 24) | ((b[offset++] & 0xff) << 16)                  | ((b[offset++] & 0xff) << 8) | (b[offset++] & 0xff);      }      /**      * int转byte数组      *       * @param a      * @return      */      public static byte[] int2Byte(int a) {          byte[] b = new byte[4];          b[0] = (byte) (a >> 24);          b[1] = (byte) (a >> 16);          b[2] = (byte) (a >> 8);          b[3] = (byte) (a);          return b;      }      /**      * int转byte数组      *       * @param a      * @param b      * @param offset      * @return      */      public static void int2Byte(int a, byte[] b, int offset) {                b[offset++] = (byte) (a >> 24);          b[offset++] = (byte) (a >> 16);          b[offset++] = (byte) (a >> 8);          b[offset++] = (byte) (a);      }  }  
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 常州社保卡丢了怎么办 深圳社保卡掉了怎么办 上海医保卡丢了怎么办 户口转到西安后医保怎么办 上海医保卡掉了怎么办 上海医保本丢了怎么办? 新版医保卡丢了怎么办 武汉社保卡掉了怎么办 职工社保卡丢了怎么办 杭州社保卡丢了怎么办 农村医疗卡丢了怎么办 陕西省医保卡丢了怎么办 小孩社保卡掉了怎么办 社区医保本丢了怎么办 宝宝医保卡掉了怎么办 同煤医疗卡丢了怎么办 杭州医保卡丢了怎么办 新的医保卡丢了怎么办 二代医保卡丢了怎么办 老医保卡丢了怎么办 上海医保卡余额用完了怎么办 身份证丢了医疗报销怎么办 取公积金身份证丢了怎么办 身份证丢了怎么办就诊卡 人在外地怎么办农村社保卡 武汉医保卡丢了怎么办 济宁社保卡丢了怎么办 农村医疗本丢了怎么办 常熟医保卡丢了怎么办 农民社保卡丢了怎么办 常熟社保卡坏了怎么办 社保卡丢失补办期看病怎么办 社保卡补办期间看病怎么办 医保卡冻结了出院结算怎么办 住院医保卡钱不够怎么办 住院押金条丢了怎么办 急用新社保卡要怎么办 看病没带社保卡怎么办 医保卡掉了住院怎么办 厦门医保卡丢了怎么办 成都医保卡丢了怎么办