实际上我需要通过integer
转移bitmap
值和bluetooth
..现在我的问题是我需要将integer
转移为单 byte
值..
是否可以转换 int
为单 byte
值..并将其作为integer
检索...我试过了byteValue()
和投射的事情,但它没用。如果我的方法是正确的,请帮我解决这个问题或者说其他方式。
(每当我使用施法时,它将返回为65535)
答案 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);