byte 即字节,由8位的二进制组成,是java的基本数据类型,存储整型数据,占据1个字节(8 bits),能够存储的数据范围是-128~+127。
超出范围的需要对其 b & 0xff 或者 b + 256 进行运算转换相应的类型
取字节的高四位( b & 0xf0) >> 4
取字节的低四位 b & 0x0f
/**
* 获取高四位
* @param <T>
* @param t
* @return
*/
public static <T> int getByteHeight4(T t) {
String reslut = toBinary(t);
if(reslut.length()==8) {
reslut = reslut.substring(0, 4);
return Integer.parseInt(reslut, 2);
}
return 0;
}
/**
* 获取低四位
* @param <T>
* @param t
* @return
*/
public static <T> int getByteLow4(T t) {
String reslut = toBinary(t);
if(reslut.length()==8) {
reslut = reslut.substring(4, 8);
return Integer.parseInt(reslut, 2);
}
return 0;
}
/*
* 转换二进制
*/
public static<T> String toBinary(T i) {
if(i instanceof Byte) {
return String.format("%8s", Integer.toBinaryString((byte)i & 0xFF)).replace(' ', '0');
}else if(i instanceof Integer) {
return String.format("%8s", Integer.toBinaryString((int)i)).replace(' ', '0');
}
return "";
}
有错误的还望大家多多指出来