zoukankan      html  css  js  c++  java
  • JAVA 中基本数组类型转byte数组

    在日常的项目中,我们经常会遇到这样的问题,就是将基本数据类型转化成字节数据,

    其实,字节数组是我们经常使用的,包括文件流,以及socket的数据传输,基本都是要求字节数组,虽然大部分人可能都使用应用层协议http,

    一般都会使用json作为传输格式,但其实底层传输层还是将这些数据进行了序列化,因此我们应该熟悉这种基本数据类型和字节数组的转化。

    当然这种应用场景也是非常的多,比如很多时候我们都希望文件的关键信息存储成字节数组,这样对外不容易解析,虽然存储成二进制也没有问题,

    但是直接存储成二进制,在解析上会有一些麻烦,而存储成字节数据,我们很清楚每4个字节组成一个int,这样处理起来相对方便一点,不需要认为约定很多东西

    下面就是int和byte[]的转换方式,

    public class NumConvert {
        public static void main(String[] args) {
            System.out.println(Integer.toBinaryString(257));
            System.out.println(bytes2Int(int2Bytes(257)));
        }
    
        /**
         * 转化过程一定是高位在前
         * @param num
         * @return
         */
        public static byte[] int2Bytes(int num) {
            byte[] result = new byte[4];
            result[0] = (byte)((num >>> 24) & 0xff);
            result[1] = (byte)((num >>> 16) & 0xff );
            result[2] = (byte)((num >>> 8) & 0xff );
            result[3] = (byte)((num >>> 0) & 0xff );
            return result;
        }
    
        public static int bytes2Int(byte[] bytes ) {
            int int1 = (bytes[0]&0xff) << 24;
            int int2 = (bytes[1]&0xff) << 16;
            int int3 = (bytes[2]&0xff) << 8;
            int int4 = (bytes[3]&0xff);
            return int1|int2|int3|int4;
        }
    }
  • 相关阅读:
    JavaScript 面向对象
    javascript中this的指向
    销售
    Java垃圾回收机制
    判断浏览器是否缩放
    pattern space and hold space of sed
    语言基础
    Python中PyQuery库的使用总结
    多个计数器在Vuex中的状态
    Sklearn
  • 原文地址:https://www.cnblogs.com/ljy-20180122/p/13284228.html
Copyright © 2011-2022 走看看