java char 的字节问题
发布网友
发布时间:2022-04-30 23:50
我来回答
共2个回答
热心网友
时间:2022-06-20 19:12
java中的char占2个字节
1:“字节”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
代码如下:
public class Test {
public static void main(String[] args) {
String str= "中";
char x ='中';
byte[] bytes=null;
byte[] bytes1=null;
try {
bytes = str.getBytes("<a href="https://www.baidu.com/s?wd=utf-8&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YzrHTdrAcvP1wBn1DzPjN90ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En1DkPjmknj6v" target="_blank" class="-highlight">utf-8</a>");
bytes1 = charToByte(x);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("bytes 大小:"+bytes.length);
System.out.println("bytes1大小:"+bytes1.length);
}
public static byte[] charToByte(char c) {
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
}
结果如下:
bytes 大小:3bytes1大小:2
热心网友
时间:2022-06-20 19:12
char类型的长度8位二进制,那么它的十进制取值范围就是0-127,当你输入133的时候,已经超过127了,所以系统就自动将值转换成-123了追问感谢回答。
那如何由 1-255的数值,得到他们对应的String呢,
比如
104 133 145 29 251 6 55
追答自己去百度吧,整形转换为字符串