- /**
- * 各基础类型与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);
- }
- }
short、int、long与byte之间的转换工具类
最新推荐文章于 2025-05-13 14:17:12 发布