java int和byte數(shù)組的互相轉(zhuǎn)換(兩種方法)

最近在用java調(diào)dll的過程中對byte數(shù)組和int的相互轉(zhuǎn)化比較頻繁,特在此記錄。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 轉(zhuǎn)化為字節(jié)數(shù)組
    public static byte[] intTobyte(int num)
    {
        return new byte[] {(byte)((num>>24)&0xff),(byte)((num>>16)&0xff),(byte)((num>>8)&0xff),(byte)(num&0xff)};
    }
    //字節(jié)數(shù)組轉(zhuǎn)化為int
    public static int byteArrayToInt(byte[] arr)
    {
        return (arr[0]&0xff)<<24|(arr[1]&0xff)<<16|(arr[2]&0xff)<<8|(arr[3]&0xff);
    }
    
    //方法二
    
    //int 轉(zhuǎn)化為字節(jié)數(shù)組
    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;
    }
    
    //字節(jié)數(shù)組轉(zhuǎn)化為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)));
        

    }

}

運行結(jié)果:


運行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,692評論 18 399
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應用。 當JAVA程序違反了JA...
    八爺君閱讀 5,206評論 1 114
  • 第一章:Java程序設計概述 Java和C++最大的不同在于Java采用的指針模型可以消除重寫內(nèi)存和損壞數(shù)據(jù)的可能...
    loneyzhou閱讀 1,368評論 1 7
  • 現(xiàn)在打開手機經(jīng)常能看到這樣的字眼,德國父母是怎么教育孩子的,如何成為美國父母,如何讓你的孩子成為英國紳士。這些標題...
    坐在云上吃炊餅閱讀 313評論 0 0
  • 今天老公終于也放假回家了,一個多月未見,我激動地跟他說我公考復習的戰(zhàn)況,行政能力測試的言語理解模塊40道題我能用2...
    吳小肉愛讀書閱讀 190評論 0 1

友情鏈接更多精彩內(nèi)容