我尝试在char 'a'
上按位移位运算符(<<< 1)并根据编译器得到输出'Â'
但是如果我看到'a' 1100001 = 97
的二进制文件并且在移动它之后{ {1}},11000010 = 194
的ASCII代码和ASCII代码194属于框图字符。我不明白为什么编译器显示ASCII码194的“”?
ASCII代码参考的链接:Box drawing character single line horizontal down
答案 0 :(得分:3)
ASCII 是一个标准,只有128个代码。
Extended ASCII不是单一标准,而是使用字节中剩余的128个代码。正如维基百科所说:
有许多扩展的ASCII编码(超过 220 DOS和Windows codepages )。
由此我们可以得出结论,扩展ASCII有220种不同的标准。你只关注其中一个,而不是那个与Java有关的那个。
实际上,您引用的链接使用code page 850,其中字符194(十六进制C2)为┬
,Â
为182(十六进制B6)。
Java使用 Unicode ,其中char
值实际上是UTF-16编码的Unicode字符。截至Unicode 10.0(2017年6月),目前有 136,755 代码。
前128个代码(Basic Latin)与ASCII相同。接下来的128个代码(Latin-1 Supplement)与扩展ASCII代码页ISO 8859-1相同。
在Unicode中,字符194(十六进制C2)为Â
,也称为'LATIN CAPITAL LETTER A WITH CIRCUMFLEX' (U+00C2)。
答案 1 :(得分:2)
您提供的链接是错误的Java扩展ASCII,请参见此处:
http://www.idevelopment.info/data/Programming/programming_resources/PROGRAMMING_ascii_table.shtml
在此表中,194 = Â
符合预期。