在Android中将int转换为byte

时间:2011-04-01 07:23:38

标签: java android casting byte int

实际上我需要通过integer转移bitmap值和bluetooth ..现在我的问题是我需要将integer转移为 byte值.. 是否可以转换 int byte值..并将其作为integer检索...我试过了byteValue()投射的事情,但它没用。如果我的方法是正确的,请帮我解决这个问题或者说其他方式。

(每当我使用施法时,它将返回为65535)

4 个答案:

答案 0 :(得分:11)

这个怎么样?

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);
}

答案 1 :(得分:10)

如果你完全确定,你的int变量包含一个字节值[-128; 127]那么它应该如下:

int i = 100; // your int variable
byte b = (byte) i;

答案 2 :(得分:2)

单字节(8位)只能包含2 ^ 8个无符号整数,即[0,255]。对于签名,你松开第一位,范围变为[-128,127]。如果您的整数适合,那么简单的强制转换应该有效。

答案 3 :(得分:1)

表示0-255个数字。

int i = 200; // your int variable
byte b = (byte)(i & 0xFF);