android中的byte数组转换
来源:互联网 发布:淘宝网笔袋图片 编辑:程序博客网 时间:2024/05/02 02:01
/**
* 将一个单字节的byte转换成32位的int
*
* @param b
* byte
* @return convert result
*/
public
static
int
unsignedByteToInt(
byte
b) {
return
(
int
) b &
0xFF
;
}
/**
* 将一个单字节的Byte转换成十六进制的数
*
* @param b
* byte
* @return convert result
*/
public
static
String byteToHex(
byte
b) {
int
i = b &
0xFF
;
return
Integer.toHexString(i);
}
/**
* 将一个4byte的数组转换成32位的int
*
* @param buf
* bytes buffer
* @param byte[]中开始转换的位置
* @return convert result
*/
public
static
long
unsigned4BytesToInt(
byte
[] buf,
int
pos) {
int
firstByte =
0
;
int
secondByte =
0
;
int
thirdByte =
0
;
int
fourthByte =
0
;
int
index = pos;
firstByte = (
0x000000FF
& ((
int
) buf[index]));
secondByte = (
0x000000FF
& ((
int
) buf[index +
1
]));
thirdByte = (
0x000000FF
& ((
int
) buf[index +
2
]));
fourthByte = (
0x000000FF
& ((
int
) buf[index +
3
]));
index = index +
4
;
return
((
long
) (firstByte <<
24
| secondByte <<
16
| thirdByte <<
8
| fourthByte)) & 0xFFFFFFFFL;
}
/**
* 将16位的short转换成byte数组
*
* @param s
* short
* @return byte[] 长度为2
* */
public
static
byte
[] shortToByteArray(
short
s) {
byte
[] targets =
new
byte
[
2
];
for
(
int
i =
0
; i <
2
; i++) {
int
offset = (targets.length -
1
- i) *
8
;
targets[i] = (
byte
) ((s >>> offset) &
0xff
);
}
return
targets;
}
/**
* 将32位整数转换成长度为4的byte数组
*
* @param s
* int
* @return byte[]
* */
public
static
byte
[] intToByteArray(
int
s) {
byte
[] targets =
new
byte
[
2
];
for
(
int
i =
0
; i <
4
; i++) {
int
offset = (targets.length -
1
- i) *
8
;
targets[i] = (
byte
) ((s >>> offset) &
0xff
);
}
return
targets;
}
/**
* long to byte[]
*
* @param s
* long
* @return byte[]
* */
public
static
byte
[] longToByteArray(
long
s) {
byte
[] targets =
new
byte
[
2
];
for
(
int
i =
0
; i <
8
; i++) {
int
offset = (targets.length -
1
- i) *
8
;
targets[i] = (
byte
) ((s >>> offset) &
0xff
);
}
return
targets;
}
/** 32位int转byte[] */
public
static
byte
[] int2byte(
int
res) {
byte
[] targets =
new
byte
[
4
];
targets[
0
] = (
byte
) (res &
0xff
);
// 最低位
targets[
1
] = (
byte
) ((res >>
8
) &
0xff
);
// 次低位
targets[
2
] = (
byte
) ((res >>
16
) &
0xff
);
// 次高位
targets[
3
] = (
byte
) (res >>>
24
);
// 最高位,无符号右移。
return
targets;
}
/**
* 将长度为2的byte数组转换为16位int
*
* @param res
* byte[]
* @return int
* */
public
static
int
byte2int(
byte
[] res) {
// res = InversionByte(res);
// 一个byte数据左移24位变成0x??000000,再右移8位变成0x00??0000
int
targets = (res[
0
] &
0xff
) | ((res[
1
] <<
8
) &
0xff00
);
// | 表示安位或
return
targets;
}
/**
* byte数组与short数组转换
*
* @param data
* @param items
* @return
*/
public
static
short
[] byteArray2ShortArray(
byte
[] data) {
if
(data ==
null
) {
// Log.e(TAG, "byteArray2ShortArray, data = null");
return
null
;
}
short
[] retVal =
new
short
[data.length /
2
];
for
(
int
i =
0
; i < retVal.length; i++) {
retVal[i] = (
short
) ((data[i *
2
] &
0xff
) | (data[i *
2
+
1
] &
0xff
) <<
8
);
}
return
retVal;
}
/**
* byte数组与short数组转换
*
* @param data
* @param items
* @return
*/
public
static
byte
[] shortArray2ByteArray(
short
[] data) {
byte
[] retVal =
new
byte
[data.length *
2
];
for
(
int
i =
0
; i < retVal.length; i++) {
int
mod = i %
2
;
if
(mod ==
0
) {
retVal[i] = (
byte
) (data[i /
2
]);
}
else
{
retVal[i] = (
byte
) (data[i /
2
] >>
8
);
}
}
return
retVal;
}
/**
* 对象转数组
*
* @param obj
* @return
*/
public
static
byte
[] toByteArray(Object obj) {
byte
[] bytes =
null
;
ByteArrayOutputStream bos =
new
ByteArrayOutputStream();
try
{
ObjectOutputStream oos =
new
ObjectOutputStream(bos);
oos.writeObject(obj);
oos.flush();
bytes = bos.toByteArray();
oos.close();
bos.close();
}
catch
(IOException ex) {
ex.printStackTrace();
}
return
bytes;
}
/**
* 数组转对象
*
* @param bytes
* @return
*/
public
static
Object toObject(
byte
[] bytes) {
Object obj =
null
;
try
{
ByteArrayInputStream bis =
new
ByteArrayInputStream(bytes);
ObjectInputStream ois =
new
ObjectInputStream(bis);
obj = ois.readObject();
ois.close();
bis.close();
}
catch
(IOException ex) {
ex.printStackTrace();
}
catch
(ClassNotFoundException ex) {
ex.printStackTrace();
}
return
obj;
}
0 0
- android中的byte数组转换
- android中的byte数组转换
- ByteArrayOutputStream 中的byte数组转换成字符串
- Android中byte数组的转换
- android byte字节数组转换十六进制字符串
- java中的int类型和byte数组的相互转换
- android byte[]数组,bitmap,drawable之间的相互转换
- android中byte[] short[] int[] long[]数组数据转换
- android byte数组,bitmap,drawable之间的转换
- android 图片与byte数组间的转换
- int 转换成 byte[] (byte数组)
- Android中的Bitamp,byte[],Drawable之间的相互转换
- byte数组转换为字符串
- String 与byte 数组转换
- byte数组转换成string
- 数值转换成byte数组
- 图片转换为byte[]数组
- byte数组和String转换
- 将Hive统计分析结果导入到MySQL数据库表中(三)——使用Hive UDF或GenericUDF
- 202 Happy Number
- 黑马程序员-java网络编程基础——socket编程基础
- 3- CI 视图 加载视图 关联数组 导入头部文件
- java中10大常见异常
- android中的byte数组转换
- selenium 简单入门
- 华为机试-字符串M转化成N为单位的段
- android学习记录(十四)android震动功能调用
- 杭电ACM1081——To The Max
- 互联网广告的基本概念
- BufferedWriter通过字符数组来缓冲数据,当缓冲区满或者用户调用flush()函数时,它就会将缓冲区的数据写入到输出流中。
- 黑马程序员—Java基础---异常体系学习总结
- RGB转换到HSI的方法