Casting((char)a)其中a是int范围之间的任意数

Aza*_*zad 4 java ascii casting character-encoding cjk

我知道,ASCII码为0-127之间的十进制和0000 00000111 1111二进制,而128-255之间的值被扩展ASCII.

我也知道int接受9位数(我错了,范围int在(-2,147,483,648到2,147,483,647)之间),所以如果我们将每个数字(0-Max intRange)之间的数字转换为a char,那么会有很多符号; 例如:

(char)999,999,999给짿这是一个韩国符号(我不知道它甚至意味着什么;谷歌翻译找不到任何意义!).

min int范围为0 时,值也会发生同样的情况.

将这些符号逐一输入是没有意义的.

我不明白 - 他们怎么能分配这些大数字来拥有自己的角色?

Eri*_*ert 20

我不明白他们如何分配这些大数字来拥有它自己的符号?

这些任务由Unicode联盟完成.有关详细信息,请参见http://unicode.org.

在你的特殊情况下,你做的事情完全没有意义.你有整数999999999,十六进制是0x3B9AC9FF.然后将其转换为char,它丢弃前四个字节并给出0xC9FF.如果你那么在Unicode.org上查看:http://www.unicode.org/cgi-bin/Code2Chart.pl并发现是的,它是一个韩国字符.

事实上,Unicode代码点可能非常大; 其中有一百多万.但你不能仅仅通过施法来达到他们.要使用UTF-16(如C#那样)获取超出"正常"范围的Unicode代码点,您需要使用两个字符.请参阅http://en.wikipedia.org/wiki/UTF-16,有关代理对的部分.

要解决您问题中的其他一些问题:

我知道ACCII代码在十进制的(0-127)和二进制的(0000 0000到0000 1111)之间.

这是ASCII,而不是ACCII,二进制127是01111111,而不是00001111

我们也知道int接受9位数,所以如果我们在每个数字之间转换

int的范围大于该范围.

不知道是什么意思,即使谷歌翻译也找不到任何意义

韩语不像中文,每个字形代表一个单词.那是信件.除非偶然形成一个单词,否则它们没有意义.你可以通过谷歌搜索随机选择的英文字母并试图找到它们的含义; 也许有时你会随意选择CAT,但大多数时候你会选择XRO或者某些不是单词的东西.

如果您想了解韩语字母的工作原理,请阅读此内容:http://en.wikipedia.org/wiki/Hangul