据我所知,a
是一个8位字符,â
是一个16位字符:
如何知道字符是8位还是16位或更高?
为什么â
字符不能以8位出现?
a
或â
只是用户界面形式,它们在位形式中看起来如何?
97是a
的代码,如何计算这个数字或者它只是字符的序数?
答案 0 :(得分:5)
据我所知
'a'
是一个8位字符,'â'
是一个16位字符。
不是真的。 Java char
是无符号的16位类型,因此'a'
和'â'
都是16位字符。确实,'a'
的前8位设置为零,但这些位仍然存在。同样适用于'â'
(见下文)。
如何知道字符是8位还是16位或更高?
将ch & 0xFF00
与零进行比较。如果它为零,则高8位全为零;否则,这8位中的一些是非零的。
为什么
'â'
字符不能以8位出现?
它可以表示为使用8位:'â'
的代码是0xE2或226.它适合8位,但它不适合7位。这是查找字符代码的方便table。
'a'
或'â'
只是用户界面形式,它们在位形式中看起来如何?
由于char
是一个整数类型,您可以将其转换为int
并以二进制,十进制,十六进制或其他基数打印它们,以查看字符表示后面的位模式。
97是
'a'
的代码,如何计算这个数字或它只是字符的序数?
将'a'
投射到int
:
int a = (int)'a';