Android中 字符串、byte数组、十六进制串、ASCII之间的相互转化

来源:互联网 发布:python 数据写入excel 编辑:程序博客网 时间:2024/05/17 02:36

之前做蓝牙通讯相关项目,搜集的一些方法,在此整理一下,以方便以后的使用。

    // byte数组转成字符串    public String btye2Str(byte[] data) {        String str = new String(data);        return str;    }    //将byte数组化为十六进制串    public static final StringBuilder byte2hex(byte[] data) {        StringBuilder stringBuilder = new StringBuilder(data.length);        for (byte byteChar : data) {            stringBuilder.append(String.format("%02X ", byteChar).trim());        }        return stringBuilder;     }     //将byte数组转化成浮点数(4个字节带小数的浮点数)     public static float byte2int_Float(byte b[]) {        int bits = b[3] & 0xff | (b[2] & 0xff) << 8 | (b[1] & 0xff) << 16                | (b[0] & 0xff) << 24;        int sign = ((bits & 0x80000000) == 0) ? 1 : -1;        int exponent = ((bits & 0x7f800000) >> 23);        int mantissa = (bits & 0x007fffff);        mantissa |= 0x00800000;        // Calculate the result:        float f = (float) (sign * mantissa * Math.pow(2, exponent - 150));        return f;     }     //十六进制串转化为byte数组     public static final byte[] hex2byte(String hex) throws IllegalArgumentException{        if (hex.length() % 2 != 0) {            throw new IllegalArgumentException();        }        char[] arr = hex.toCharArray();        byte[] b = new byte[hex.length() / 2];        for (int i = 0, j = 0, l = hex.length(); i < l; i++, j++) {            String swap = "" + arr[i++] + arr[i];            int byteint = Integer.parseInt(swap, 16) & 0xFF;            b[j] = new Integer(byteint).byteValue();        }        return b;     }     //将字符串转成ASCII值     public static String strToASCII(String data) {        String requestStr = "";        for (int i = 0; i < data.length(); i++) {            char a = data.charAt(i);            int aInt = (int) a;            requestStr = requestStr + integerToHexString(aInt);        }        return requestStr;    }     //将十进制整数转为十六进制数,并补位    public static String integerToHexString(int s) {        String ss = Integer.toHexString(s);        if (ss.length() % 2 != 0) {            ss = "0" + ss;//0F格式        }        return ss.toUpperCase();    }    
阅读全文
1 0
原创粉丝点击