[英]Converting int to byte in Android
實際上我需要通過bluetooth
傳輸integer
數值和bitmap
..現在我的問題是我需要將integer
為單 byte
值..是否可以將 int
轉換為單 byte
值..並將其作為integer
檢索那里...我嘗試了byteValue()
和鑄造的東西,但它沒有用。如果我的方法是正確的,只是幫我解決這個或說一些其他的方式。
(每當我使用鑄造時,它返回為65535)
那這個呢?
public static byte[] intToByteArray(int a)
{
byte[] ret = new byte[4];
ret[3] = (byte) (a & 0xFF);
ret[2] = (byte) ((a >> 8) & 0xFF);
ret[1] = (byte) ((a >> 16) & 0xFF);
ret[0] = (byte) ((a >> 24) & 0xFF);
return ret;
}
和
public static int byteArrayToInt(byte[] b)
{
return (b[3] & 0xFF) + ((b[2] & 0xFF) << 8) + ((b[1] & 0xFF) << 16) + ((b[0] & 0xFF) << 24);
}
如果你完全確定,你的int變量包含一個字節值[-128; 127]那么它應該是這樣簡單:
int i = 100; // your int variable
byte b = (byte) i;
單字節(8位)只能包含2 ^ 8個無符號整數,即[0,255]。 對於簽名,你松開第一位,范圍變為[-128,127]。 如果您的整數適合,則簡單的強制轉換應該有效。
為0-255數字。
int i = 200; // your int variable
byte b = (byte)(i & 0xFF);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.