簡體   English   中英

使用java或android將整數轉換為無符號字節數組

[英]Convert integer to unsigned byte array with java or android

嗨我在SO中看到很多鏈接將整數值轉換為無符號字節數組。 但我無法弄明白。 我的轉換如下

//在android中

int checksum=104396;

byte[] byteArray = GetBytesInt(checksum);

public static byte[] GetBytesInt(int value) {
        byte[] bytes = new byte[4];
        bytes[0] = (byte) (value >> 24);
        bytes[1] = (byte) (value >> 16);
        bytes[2] = (byte) (value >> 8);
        bytes[3] = (byte) (value);
        return bytes;
    }

在android中輸出
[0,1,-105,-52]

//在c#中

uint CheckSum=104396;

byte[] byteArray=BitConverter.GetBytes(CheckSum)

where BitConverter is System method

c#中的輸出

[204,151,1,0]

我如何在java或android中獲得此輸出。 我檢查java 8和Guava有相同的返回。

請幫我一些編碼

根據@greenapps的建議,以LITTLE_ENDIAN格式獲取字節數組解決了這個問題。

ByteBuffer byteBuffer = ByteBuffer.allocate(4);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
byteBuffer.putInt((int) (value & 0xffffffffL));
byte[] array=Bytes.asList(byteBuffer.array())

在android中輸出

[-52,-105,1,0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM