因为 char b='\377'; System.out.println(b);这个 不能 在大了 。
3 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
如果你只是想用 '\377' 这样的形式——通过转义八进制数——来表示 char 的话,那么确实不行。
Java 只允许转义不超过 0377 的八进制数来表示字符。0377 是占满 8 位的数,但 Java 中的 char 是 16 位,所以无法表达所有 char 值。 其实 Java 允许转义八进制数表示字符是来源于 C 语言,C 中字符类型只占 8 位,所以才有这个限制。
Java 是推荐使用转义十六进制数来表示 char 的。
如果不用转义,换一种方式,你可以用“把八进制数表示为整型,再把整型转为 char 类型”来实现八进制数到 char 的转换。
用 '卷' 举例,它的八进制数值为 051567,可以这样:char c = (char)051567;
onemoo
TA贡献883条经验 获得超454个赞
Java 中的字符型 char 并不是只占用 1 字节,它占用 16 字节(抱歉,这里之前手误,应该是 16 位)。而且 Java 中字符采用 UTF-16 编码,所以一个字符有可能占用两个 char。
另外,如何表示和进制没关系。
添加回答
举报
0/150
提交
取消