我有一个十六进制的字符串,要拿到每个Bit位的数字,怎么才能实现?

解决方案 »

  1.   

    字符串是有其编码的,你要根据编码方式,比如是UNICODE的,还是UTF8的,还是ANSI的。
    得到bytes,有了bytes,bits就没啥难度了。
      

  2.   

    楼主,你的问题有点歧义。Java的char类型就是两个字节的,即是UNICODE编码。而String的核心就是一个char数组。你说的十六进制的字符串,是指这个字符串的编码方式是UNICODE编码吗?那是当然的啊。或者你的意思是说,这个字符串的内容是一个十六进制的数字?比如
    String str="0x89aaff";是这个意思吗?
      

  3.   

    怎么弄啊?UTF8的编码,比如说是四个字节就应该是32位,怎么拿到每位的数
      

  4.   

    String里面有个 方法 叫 getBytes("utf8")研究研究~
      

  5.   

    对,我所说的十六进制的字符串是指String的内容是一个十六进制的数字,现在要拿到每个Bit位的数字,不知道应该怎么办
      

  6.   


    String a = "1234567890ABCDEF";
    byte[] bs = a.getBytes();
    for (int i = 0; i < bs.length; ++i) {
    byte b = bs[i];

    for (int j = 0; j < 8; ++j) {
    int one = 1;
    one <<=j;
    System.out.print(b & (short)one);
    System.out.print(" ");
    }
    System.out.println();
    }
    这是你要的吗?