java int和byte数组的互相转换(两种方法)

最近在用java调dll的过程中对byte数组和int的相互转化比较频繁,特在此记录。Code Bank

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Arrays;

public class Test02 {
    
    //方法一
    
    //int 转化为字节数组
    public static byte[] intTobyte(int num)
    {
        return new byte[] {(byte)((num>>24)&0xff),(byte)((num>>16)&0xff),(byte)((num>>8)&0xff),(byte)(num&0xff)};
    }
    //字节数组转化为int
    public static int byteArrayToInt(byte[] arr)
    {
        return (arr[0]&0xff)<<24|(arr[1]&0xff)<<16|(arr[2]&0xff)<<8|(arr[3]&0xff);
    }
    
    //方法二
    
    //int 转化为字节数组
    public static byte[] intTobyte2(int num)
    {
        byte[] result=null;
        ByteArrayOutputStream bos=new ByteArrayOutputStream();
        DataOutputStream dos=new DataOutputStream(bos);
        try {
            dos.writeInt(num);
            result=bos.toByteArray();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }
    
    //字节数组转化为int
    public static int byteArrayToInt2(byte[] arr)
    {
        int result=0;
        ByteArrayInputStream bis=new ByteArrayInputStream(arr);
        DataInputStream dis=new DataInputStream(bis);
        try {
            result= dis.readInt();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }
    
    
    public static void main(String[] args) {
        
        int a=-64;
        System.out.println(Arrays.toString(intTobyte(a)));
        System.out.println(byteArrayToInt(intTobyte(a)));
        
        System.out.println(Arrays.toString(intTobyte2(a)));
        System.out.println(byteArrayToInt2(intTobyte2(a)));
        

    }

}

运行结果:


运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,694评论 1 114
  • 第一章:Java程序设计概述 Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能...
    loneyzhou阅读 1,298评论 1 7
  • 现在打开手机经常能看到这样的字眼,德国父母是怎么教育孩子的,如何成为美国父母,如何让你的孩子成为英国绅士。这些标题...
    坐在云上吃炊饼阅读 291评论 0 0
  • 今天老公终于也放假回家了,一个多月未见,我激动地跟他说我公考复习的战况,行政能力测试的言语理解模块40道题我能用2...
    吴小肉爱读书阅读 161评论 0 1