char c = 45;
char d = 8211;
System.out.println(c);
System.out.println(d);显示的结果是同一个字符:'–' 这是怎么回事啊?
我在进行赫夫曼编码的练习,理论上讲这完全是同一个字符嘛,但是 (c==d) 的结果却是false,导致在赫夫曼编码中,被编为不同的码。
麻烦高手给解释一下吧!!!!!!!!!!
char d = 8211;
System.out.println(c);
System.out.println(d);显示的结果是同一个字符:'–' 这是怎么回事啊?
我在进行赫夫曼编码的练习,理论上讲这完全是同一个字符嘛,但是 (c==d) 的结果却是false,导致在赫夫曼编码中,被编为不同的码。
麻烦高手给解释一下吧!!!!!!!!!!
!!!!!!!!!!!!
经您一提醒,我还真觉得他俩不一般高,能差个1像素............
为什么会出现这种情况啊?????java中处理这个还算方便,要是c语言中,char的范围是1个字节,他去读取8211这个字符,会出现什么后果呢???????
在notepad++中,一个高一个低。
又放到记事本里看了看,一个寛一个窄。
不同的编辑器处理起来不太一样啊
还有楼上的,在C中如果char去读取8211这个字符很有可能是内存泄露吧。
java里的char是2字节16bit的无符号整数的。所以肯定是不同了
Unicode 对这个字符的字义是:HYPHEN-MINUS8211 即 Unicode 字符 U+2013
Unicode 对这个字符的字义是:EN DASH
只是像而已罢了!Unicode 字符中有很多看上去一样的字符。