Java中的字符位

Hoa*_*yen 3 java io utf

据我所知a是一个8位字符,â是一个16位字符:

  1. 如何知道一个字符是8位还是16位或更高?

  2. 为什么â角色不能以8位出现?

  3. a或者â只是UI形式,它们如何以位形式显示?

  4. 97是代码a,如何计算这个数字或它只是字符的序数?

das*_*ght 5

据我所知,这'a'是一个8位字符,'â'是一个16位字符.

并不是的.的Java char是一个无符号的16位的,所以无论'a''â'是16位字符.确实,'a'前8位设置为零,但这些位仍然存在.同样如此'â'(见下文).

如何知道一个字符是8位还是16位或更高?

比较ch & 0xFF00为零.如果它为零,则高8位全为零; 否则,这8位中的一些是非零的.

为什么'â'角色不能以8位出现?

它可以表示为使用8位:'â'代码是0xE2或226.它适合8位,但它不适合7位.这是一个查找字符代码的便捷.

'a'或者'â'只是UI形式,它们如何以位形式显示?

由于char是一个整数类型,您可以将其转换为int二进制,十进制,十六进制或其他基数,以查看字符表示后面的位模式.

97是代码'a',如何计算这个数字或它只是字符的序数?

演员'a'int:

int a = (int)'a';
Run Code Online (Sandbox Code Playgroud)

  • @HoangNguyen 97只是一个数字,当它被设置为`char`类型的变量时,它被*解释为一个字符`'a'.除了这种解释之外,与九十七分之一和九十七分之一没有区别. (3认同)