JLChen
2021-11-05 de72a7843ceb868c89fc11983e315849caa28573
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package com.hdl.sdk.ttl.Utils.HDLUtlis;
 
import java.math.BigDecimal;
import java.nio.ByteBuffer;
 
/**
 * Created by JLChen on 2019/7/25
 */
public class HDLUtlis {
 
    /**
     * 将object转为Integer类型
     * @param object
     * @return
     */
    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();
            }
        }
        return in;
    }
 
    /**
     * int类型转4字节byte数组
     * @param mInt
     * @return 4字节byte数组
     */
    public static byte[] intToByteArray(int mInt) {
        byte[] result = new byte[4];
        // 由高位到低位
        result[0] = (byte) ((mInt >> 24) & 0xFF);
        result[1] = (byte) ((mInt >> 16) & 0xFF);
        result[2] = (byte) ((mInt >> 8) & 0xFF);
        result[3] = (byte) (mInt & 0xFF);
        return result;
    }
 
    /**
     * byte[]转int
     * @param bytes
     * @return
     */
    public static int byteArrayToInt(byte[] bytes) {
        int value = 0;
        // 由高位到低位
        for (int i = 0; i < 4; i++) {
            int shift = (4 - 1 - i) * 8;
            value += (bytes[i] & 0x000000FF) << shift;// 往高位游
        }
        return value;
    }
 
 
    public static float byte2Float(byte[] bytes) {
        if (bytes.length != 4) {
            return 0;
        }
        byte b[] = bytes;
        ByteBuffer buf = ByteBuffer.allocateDirect(4);
//        buf=buf.order(ByteOrder.LITTLE_ENDIAN);小端用这行代码,默认大端转换
        buf.put(b);
        buf.rewind();
        float f2 = buf.getFloat();
        return f2;
    }
 
    /**
     * 调整int 类型参数
     * @return progress
     */
    public static int getTrueProgressInt(int progress) {
        if (progress < 0) {
            progress = 0;
        } else if (progress > 100) {
            progress = 100;
        }
        return progress;
    }
}