short、int、long与byte其间的转换工具类

short、int、long与byte之间的转换工具类

/**
 * 各基础类型与byte之间的转换
 * @author shanl
 *
 */
public class Utility {
	
	/**
	 * 将short转成byte[2]
	 * @param a
	 * @return
	 */
	public static byte[] short2Byte(short a){
		byte[] b = new byte[2];
		
		b[0] = (byte) (a >> 8);
		b[1] = (byte) (a);
		
		return b;
	}
	
	/**
	 * 将short转成byte[2]
	 * @param a
	 * @param b
	 * @param offset b中的偏移量
	 */
	public static void short2Byte(short a, byte[] b, int offset){
		b[offset] = (byte) (a >> 8);
		b[offset+1] = (byte) (a);
	}
	
	/**
	 * 将byte[2]转换成short
	 * @param b
	 * @return
	 */
	public static short byte2Short(byte[] b){
		return (short) (((b[0] & 0xff) << 8) | (b[1] & 0xff));
	}
	
	/**
	 * 将byte[2]转换成short
	 * @param b
	 * @param offset
	 * @return 
	 */
	public static short byte2Short(byte[] b, int offset){
		return (short) (((b[offset] & 0xff) << 8) | (b[offset+1] & 0xff));
	}

	/**
	 * long转byte[8]
	 * 
	 * @param a
	 * @param b
	 * @param offset
	 *            b的偏移量
	 */
	public static void long2Byte(long a, byte[] b, int offset) {		
		b[offset + 0] = (byte) (a >> 56);
		b[offset + 1] = (byte) (a >> 48);
		b[offset + 2] = (byte) (a >> 40);
		b[offset + 3] = (byte) (a >> 32);

		b[offset + 4] = (byte) (a >> 24);
		b[offset + 5] = (byte) (a >> 16);
		b[offset + 6] = (byte) (a >> 8);
		b[offset + 7] = (byte) (a);
	}

	/**
	 * byte[8]转long
	 * 
	 * @param b
	 * @param offset
	 *            b的偏移量
	 * @return
	 */
	public static long byte2Long(byte[] b, int offset) {
		 return ((((long) b[offset + 0] & 0xff) << 56)
		 | (((long) b[offset + 1] & 0xff) << 48)
		 | (((long) b[offset + 2] & 0xff) << 40)
		 | (((long) b[offset + 3] & 0xff) << 32)
		 
		 | (((long) b[offset + 4] & 0xff) << 24)
		 | (((long) b[offset + 5] & 0xff) << 16)
		 | (((long) b[offset + 6] & 0xff) << 8)
		 | (((long) b[offset + 7] & 0xff) << 0));
	}

	/**
	 * byte[8]转long
	 * 
	 * @param b
	 * @return
	 */
	public static long byte2Long(byte[] b) {
		 return
		 ((b[0]&0xff)<<56)|
		 ((b[1]&0xff)<<48)|
		 ((b[2]&0xff)<<40)|
		 ((b[3]&0xff)<<32)|
		
		 ((b[4]&0xff)<<24)|
		 ((b[5]&0xff)<<16)|
		 ((b[6]&0xff)<<8)|
		 (b[7]&0xff);
	}

	/**
	 * long转byte[8]
	 * 
	 * @param a
	 * @return
	 */
	public static byte[] long2Byte(long a) {
		byte[] b = new byte[4 * 2];

		b[0] = (byte) (a >> 56);
		b[1] = (byte) (a >> 48);
		b[2] = (byte) (a >> 40);
		b[3] = (byte) (a >> 32);
		
		b[4] = (byte) (a >> 24);
		b[5] = (byte) (a >> 16);
		b[6] = (byte) (a >> 8);
		b[7] = (byte) (a >> 0);

		return b;
	}

	/**
	 * byte数组转int
	 * 
	 * @param b
	 * @return
	 */
	public static int byte2Int(byte[] b) {
		return ((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16)
				| ((b[2] & 0xff) << 8) | (b[3] & 0xff);
	}

	/**
	 * byte数组转int
	 * 
	 * @param b
	 * @param offset
	 * @return
	 */
	public static int byte2Int(byte[] b, int offset) {
		return ((b[offset++] & 0xff) << 24) | ((b[offset++] & 0xff) << 16)
				| ((b[offset++] & 0xff) << 8) | (b[offset++] & 0xff);
	}

	/**
	 * int转byte数组
	 * 
	 * @param a
	 * @return
	 */
	public static byte[] int2Byte(int a) {
		byte[] b = new byte[4];
		b[0] = (byte) (a >> 24);
		b[1] = (byte) (a >> 16);
		b[2] = (byte) (a >> 8);
		b[3] = (byte) (a);

		return b;
	}

	/**
	 * int转byte数组
	 * 
	 * @param a
	 * @param b
	 * @param offset
	 * @return
	 */
	public static void int2Byte(int a, byte[] b, int offset) {		
		b[offset++] = (byte) (a >> 24);
		b[offset++] = (byte) (a >> 16);
		b[offset++] = (byte) (a >> 8);
		b[offset++] = (byte) (a);
	}
}
 
1 楼 csdn_zuoqiang 2012-05-31  
public class FileHead {
    /**版本*/
    public static final int VERSION = 0x00000001;
    /**头标志*/
    public static final byte[] FLAG = {'T', 'E', 'S', 'T'};
    /**压缩算法*/
    public int compress = 0x00000003;
}

        //向文件中写头信息
    static void t6(){
        FileHead head = new FileHead();
        OutputStream out = null;
        
        head.compress = 0x04;
        
        out.write(Utility.int2Byte(head.VERSION));
        out.write(head.FLAG);
        out.write(Utility.int2Byte(head.compress));
    }