| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.nio.ByteBuffer; |
| | | import java.nio.ByteOrder; |
| | | |
| | | /** |
| | | * Created by JLChen on 2019/7/25 |
| | |
| | | |
| | | /** |
| | | * 将object转为Integer类型 |
| | | * |
| | | * @param object |
| | | * @return |
| | | */ |
| | | public static Integer getIntegerByObject(Object object){ |
| | | public static Integer getIntegerByObject(Object object) { |
| | | Integer in = null; |
| | | if(object!=null){ |
| | | if(object instanceof Integer){ |
| | | in = (Integer)object; |
| | | }else if(object instanceof String){ |
| | | in = Integer.parseInt((String)object); |
| | | }else if(object instanceof Double){ |
| | | in = (int)((double)object); |
| | | }else if(object instanceof Float){ |
| | | in = (int)((float)object); |
| | | }else if(object instanceof BigDecimal){ |
| | | in = ((BigDecimal)object).intValue(); |
| | | }else if(object instanceof Long){ |
| | | in = ((Long)object).intValue(); |
| | | if (object != null) { |
| | | if (object instanceof Integer) { |
| | | in = (Integer) object; |
| | | } else if (object instanceof String) { |
| | | in = Integer.parseInt((String) object); |
| | | } else if (object instanceof Double) { |
| | | in = (int) ((double) object); |
| | | } else if (object instanceof Float) { |
| | | in = (int) ((float) object); |
| | | } else if (object instanceof BigDecimal) { |
| | | in = ((BigDecimal) object).intValue(); |
| | | } else if (object instanceof Long) { |
| | | in = ((Long) object).intValue(); |
| | | } |
| | | } |
| | | return in; |
| | |
| | | |
| | | /** |
| | | * int类型转4字节byte数组 |
| | | * |
| | | * @param mInt |
| | | * @return 4字节byte数组 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * byte[]转int |
| | | * |
| | | * @param bytes |
| | | * @return |
| | | */ |
| | |
| | | |
| | | |
| | | public static float byte2Float(byte[] bytes) { |
| | | if (bytes.length != 4) { |
| | | /* if (bytes.length != 4) { |
| | | return 0; |
| | | } |
| | | }*/ |
| | | byte b[] = bytes; |
| | | ByteBuffer buf = ByteBuffer.allocateDirect(4); |
| | | // buf=buf.order(ByteOrder.LITTLE_ENDIAN);小端用这行代码,默认大端转换 |
| | | buf = buf.order(ByteOrder.LITTLE_ENDIAN);//小端用这行代码,默认大端转换 |
| | | buf.put(b); |
| | | buf.rewind(); |
| | | float f2 = buf.getFloat(); |
| | |
| | | |
| | | /** |
| | | * 调整int 类型参数 |
| | | * |
| | | * @return progress |
| | | */ |
| | | public static int getTrueProgressInt(int progress) { |
| | |
| | | } |
| | | return progress; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 4 byte 转换为float类型 |
| | | * |
| | | * @param b1 |
| | | * @param b2 |
| | | * @param b3 |
| | | * @param b4 |
| | | * @return |
| | | */ |
| | | public static float byteToFloat(byte b1, byte b2, byte b3, byte b4) { |
| | | byte[] mByte = new byte[4]; |
| | | mByte[0] = b1; |
| | | mByte[1] = b2; |
| | | mByte[2] = b3; |
| | | mByte[3] = b4; |
| | | return byteArrayToFloat(mByte); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * byte[4]数组 转换为float类型 |
| | | * |
| | | * @param arr 长度为4 |
| | | * @return |
| | | */ |
| | | public static float byteArrayToFloat(byte[] arr) { |
| | | try { |
| | | return Float.intBitsToFloat(getInt(arr)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 连续4个字节获得一个int |
| | | * |
| | | * @param arr |
| | | * @return int |
| | | */ |
| | | public static int getInt(byte[] arr) { |
| | | return (0xff000000 & (arr[0] << 24)) | |
| | | (0x00ff0000 & (arr[1] << 16)) | |
| | | (0x0000ff00 & (arr[2] << 8)) | |
| | | (0x000000ff & arr[3]); |
| | | } |
| | | } |