java字符串转bit(Java字符串转化为数字)

发布时间:2022-11-14

本文目录一览:

  1. java 16进制字符串转为二进制bit数组?
  2. java 中如何将字符串转换成16位bit型数据?
  3. 怎么把字符串转化为十六进制字符串 java

java 16进制字符串转为二进制bit数组?

应该用byte型数组

public static String stringToHexString(String strPart) {
    String hexString = "";
    for (int i = 0; i < strPart.length(); i++) {
        int ch = (int) strPart.charAt(i);
        String strHex = Integer.toHexString(ch);
        hexString = hexString + strHex;
    }
    return hexString;
}
private static String hexString = "0123456789ABCDEF";
/*
 * 将字符串编码成16进制数字,适用于所有字符(包括中文)
 */
public static String encode(String str) {
    // 根据默认编码获取字节数组
    byte[] bytes = str.getBytes();
    StringBuilder sb = new StringBuilder(bytes.length * 2);
    // 将字节数组中每个字节拆解成2位16进制整数
    for (int i = 0; i < bytes.length; i++) {
        sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
        sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
    }
    return sb.toString();
}
/*
 * 将16进制数字解码成字符串,适用于所有字符(包括中文)
 */
public static String decode(String bytes) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length / 2);
    // 将每2位16进制整数组装成一个字节
    for (int i = 0; i < bytes.length(); i += 2)
        baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString.indexOf(bytes.charAt(i + 1))));
    return new String(baos.toByteArray());
}
private static byte uniteBytes(byte src0, byte src1) {
    byte _b0 = Byte.decode("0x" + new String(new byte[] { src0 })).byteValue();
    _b0 = (byte) (_b0 << 4);
    byte _b1 = Byte.decode("0x" + new String(new byte[] { src1 })).byteValue();
    byte ret = (byte) (_b0 | _b1);
    return ret;
}
public static byte[] HexString2Bytes(String src) {
    byte[] ret = new byte[6];
    byte[] tmp = src.getBytes();
    for (int i = 0; i < 6; ++i) {
        ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);
    }
    return ret;
}

java 中如何将字符串转换成16位bit型数据?

String s = "a";
int[] i = s.toCharArray();
static String Integer.toBinaryString(i[0]);

希望有帮助

怎么把字符串转化为十六进制字符串 java

思路:用一个初始化为09a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值。 方法如下:

public static String str2HexStr(String str) {
    char[] chars = "0123456789ABCDEF".toCharArray();
    StringBuilder sb = new StringBuilder("");
    byte[] bs = str.getBytes();
    int bit;
    for (int i = 0; i < bs.length; i++) {
        bit = (bs[i] & 0x0f0) >> 4;
        sb.append(chars[bit]);
        bit = bs[i] & 0x0f; //位于运算
        sb.append(chars[bit]); //进行字符串的拼接
    }
    return sb.toString();
}

调用方法如下:

String str = str2HexStr("asbd");