编写一个函数,把一个char(1 char=16bits) 分解成连个byte(1byte=8bits)。
求高手指教!
    public static void main(String[] args) throws UnsupportedEncodingException {
        char a = 'a';
        String s = Character.toString(a);       
        byte b[] = s.getBytes();
        int c = b.length;
        System.out.println(c);
        for(int i = 0; i< b.length;i++){
        System.out.println(b[i]);
        }
 
    }
我这样编写不对!

解决方案 »

  1.   

    我没有试。但我觉得你的方法不对,getBytes是得到默认编码的字符序列,所以你得到的只有一个'a'的ASC码
      

  2.   

    需要指定一下 charset 。
    public class Test
    {
    public static void main(String[] args)
    {
    char c = 'a';
    byte[] b = null;
    try
    {
    b = new String(new char[]{c}).getBytes("UTF-16LE");
    }
    catch (Exception e)
    {
    System.exit(-1);
    }

    for (int i = 0; i < b.length; i++)
    {
    System.out.println(i + ":" + b[i]);
    }
    }
    }
      

  3.   

    感谢 goodname008(卢培培,充电中......) ,确实,我的代码里面只要改
    byte b[] = s.getBytes("UTF-16LE");
    就能达到效果!