猿问

java中字符用八进制表示 不全 是吗?

因为

   char b='\377';
  System.out.println(b);

这个 不能 在大了 。

慕田峪7551596
浏览 1997回答 3
3回答

onemoo

如果你只是想用 '\377' 这样的形式——通过转义八进制数——来表示 char 的话,那么确实不行。Java 只允许转义不超过 0377 的八进制数来表示字符。0377 是占满 8 位的数,但 Java 中的 char 是 16 位,所以无法表达所有 char 值。  其实 Java 允许转义八进制数表示字符是来源于 C 语言,C 中字符类型只占 8 位,所以才有这个限制。Java 是推荐使用转义十六进制数来表示 char 的。如果不用转义,换一种方式,你可以用“把八进制数表示为整型,再把整型转为 char 类型”来实现八进制数到 char 的转换。用 '卷' 举例,它的八进制数值为 051567,可以这样:char c = (char)051567;

onemoo

Java 中的字符型 char 并不是只占用 1 字节,它占用 16 字节(抱歉,这里之前手误,应该是 16 位)。而且 Java 中字符采用 UTF-16 编码,所以一个字符有可能占用两个 char。另外,如何表示和进制没关系。
随时随地看视频慕课网APP

相关分类

Java
我要回答