Java byte数组按位转化为long类型

来源:互联网 发布:北京seo 编辑:程序博客网 时间:2024/06/06 19:33

本方法适用于(高位在前,低位在后)的顺序

 public static void main(String[] args) {        byte[] l = new byte[]{(byte) 0xe7, (byte) 0xf3, (byte) 0x90, (byte) 0x54,                (byte) 0x39, (byte) 0x6e, (byte) 0x11, (byte) 0x7c,                (byte) 0x01, (byte) 0xe7, (byte) 0x70, (byte) 0x3c,                (byte) 0x79, (byte) 0x14, (byte) 0xb5, (byte) 0x67};        System.out.println(getLong(l,4));} /**     * @param data 数组     * @param num 多少个byte相组合成一个数字     * */ public static long getLong(byte[] data, int num) {        long count = 0;        for (int i = 0; i < data.length / num; i++) {            int offset = i * num;            long val = 0;            for (int j = 0; j < num; j++) {                long _val =  ((long)(data[offset + num - j - 1] & 0xFF) << j * 8);                if (val == 0) {                    val = _val;                } else {                    val = val | _val;                }            }            count = count + val;        }        return count;    }

输出:6918358899

本方法适用于(高位在前,低位在后)的顺序

 public static void main(String[] args) {        byte[] l = new byte[]{(byte) 0xe7, (byte) 0xf3, (byte) 0x90, (byte) 0x54,                (byte) 0x39, (byte) 0x6e, (byte) 0x11, (byte) 0x7c,                (byte) 0x01, (byte) 0xe7, (byte) 0x70, (byte) 0x3c,                (byte) 0x79, (byte) 0x14, (byte) 0xb5, (byte) 0x67};        System.out.println(getLong(l,4)); }/**     * @param data 数组     * @param num 多少个byte相组合成一个数字     * */     public static long getLong(byte[] data, int num) {        long count = 0;        for (int i = 0; i < data.length / num; i++) {            int offset = i * num;            long val = 0;            for (int j = 0; j < num; j++) {                long _val =  ((long)(data[offset + j] & 0xFF) << j * 8);                if (val == 0) {                    val = _val;                } else {                    val = val | _val;                }            }            count = count + val;        }        return count;    }

输出:6918358899

原创粉丝点击