java字符转换问题

来源:互联网 发布:网络贵金属 编辑:程序博客网 时间:2024/05/21 08:54

byte是带符号的类型,所以byte[]转string再转byte[]会出现问题,直接改成char[]就好了,

因为String里的new String(char [])构造函数直接调用的System.Arraycopy

而new String(byte[])调用了解码的相关东西,与解码有关,所以不要用byte[]

       



 byte b = (byte) 0xf1;
        byte c = -15;

b和c的值是一样的,因为b是直接的内存拷贝,而-15,的机器码是补吗,所以是一样的。0xf1除去符号位取反加以就是-15的原码表示。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

1.       Java 字符串转int或者byte

如果第一位有1,用Integer.parse不好用,需要

Integer.valueOf(src.substring(i, i + 2),16).byteValue();

就能获得其byte值

Java byteint自动转换会有填充值,所以java, byteint要用 byte & 0xff,因为0xff仅仅是指1111 1111


0 0