java byte 操作_java基本数据类型中的byte操作(1)

public class TestCase {

// short到字节数组的转换.

public static byte[] shortToByte(short number) {

int temp = number;

byte[] b = new byte[2];

for (int i = 0; i 

b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位

temp = temp >> 8;// 向右移8位

}

return b;

}

//字节数组到short的转换.

public static short byteToShort(byte[] b) {

short s = 0;

short s0 = (short) (b[0] & 0xff);// 最低位

short s1 = (short) (b[1] & 0xff);

s1 <<= 8;

s = (short) (s0 | s1);

return s;

}

//int到字节数组的转换.

public static byte[] intToByte(int number) {

int temp = number;

byte[] b = new byte[4];

for (int i = 0; i 

b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位

temp = temp >> 8;// 向右移8位

}

return b;

}

//字节数组到int的转换.

public static int byteToInt(byte[] b) {

int s = 0;

int s0 = b[0] & 0xff;// 最低位

int s1 = b[1] & 0xff;

int s2 = b[2] & 0xff;

int s3 = b[3] & 0xff;

s3 <<= 24;

s2 <<= 16;

s1 <<= 8;

s = s0 | s1 | s2 | s3;

return s;

}

//long类型转成byte数组

public static byte[] longToByte(long number) {

long temp = number;

byte[] b = new byte[8];

for (int i = 0; i 

b[i] = new Long(temp & 0xff).byteValue();// 将最低位保存在最低位

temp = temp   // >> 8;// 向右移8位

}

return b;

}

//字节数组到long的转换.

public static long byteToLong(byte[] b) {

long s = 0;

long s0 = b[0] & 0xff;// 最低位

long s1 = b[1] & 0xff;

long s2 = b[2] & 0xff;

long s3 = b[3] & 0xff;

long s4 = b[4] & 0xff;// 最低位

long s5 = b[5] & 0xff;

long s6 = b[6] & 0xff;

long s7 = b[7] & 0xff;

// s0不变

s1 <<= 8;

s2 <<= 16;

s3 <<= 24;

s4 <<= 8 * 4;

s5 <<= 8 * 5;

s6 <<= 8 * 6;

s7 <<= 8 * 7;

s = s0 | s1 | s2 | s3 | s4 | s5 | s6 | s7;

return s;

}

//double到字节数组的转换.

public static byte[] doubleToByte(double num) {

byte[] b = new byte[8];

long l = Double.doubleToLongBits(num);

for (int i = 0; i 

b[i] = new Long(l).byteValue();

l = l >> 8;

}

return b;

}

// 字节数组到double的转换.

public static double getDouble(byte[] b) {

long m;

m = b[0];

m &= 0xff;

m |= ((long) b[1] <

m &= 0xffff;

m |= ((long) b[2] <

m &= 0xffffff;

m |= ((long) b[3] <

m &= 0xffffffffl;

m |= ((long) b[4] <

m &= 0xffffffffffl;

m |= ((long) b[5] <

m &= 0xffffffffffffl;

m |= ((long) b[6] <

m &= 0xffffffffffffffl;

m |= ((long) b[7] <

return Double.longBitsToDouble(m);

}

//float到字节数组的转换.

public static byte[] floatToByte(float x) {

//先用 Float.floatToIntBits(f)转换成int  和doulen类似

}

//字节数组到float的转换

public static float getFloat(byte[] b) {

int accum = 0;

for ( int shiftBy = 0; shiftBy 

accum |= (b[shiftBy] & 0xff) <

}

return Float.intBitsToFloat(accum);

}

// char到字节数组的转换.

public static byte[] charToByte(char c){

byte[] b = new byte[2];

b[0] = (byte) ((c & 0xFF00) >> 8);

b[1] = (byte) (c & 0xFF);

return b;

}

//字节数组到char的转换

public static char byteToChar(byte[] b){

char c = (char) (((b[0] & 0xFF) <

return c;

}

//string到字节数组的转换.

public static byte[] stringToByte(String str) throws UnsupportedEncodingException{

return str.getBytes("GBK");

}

//字节数组到String的转换.

public static String bytesToString(byte[] str) {

String keyword = null;

try {

keyword = new String(str,"GBK");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return keyword;

}

// object到字节数组的转换

public void testObject2ByteArray() throws IOException,ClassNotFoundException {

// Object obj = "";

Integer[] obj = { 1, 3, 4 };

// // object to bytearray

ByteArrayOutputStream bo = new ByteArrayOutputStream();

ObjectOutputStream oo = new ObjectOutputStream(bo);

oo.writeObject(obj);

byte[] bytes = bo.toByteArray();

bo.close();

oo.close();

System.out.println(Arrays.toString(bytes));

Integer[] intArr = (Integer[]) testByteArray2Object(bytes);

System.out.println(Arrays.asList(intArr));

byte[] b2 = intToByte(123);

System.out.println(Arrays.toString(b2));

int a = byteToInt(b2);

System.out.println(a);

}

//字节数组到object的转换.

private Object testByteArray2Object(byte[] bytes) throws IOException, ClassNotFoundException {

//byte[] bytes = null;

Object obj;

// bytearray to object

ByteArrayInputStream bi = new ByteArrayInputStream(bytes);

ObjectInputStream oi = new ObjectInputStream(bi);

obj = oi.readObject();

bi.close();

oi.close();

System.out.println(obj);

return obj;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值