无符号字符问题。 我正在读取具有ASCII /扩展ASCII数据的PPM图像文件。转换C/C++无符号字符到JAVA的问题
对于一个字符,例如。 “†”, 在JAVA,读取它作为char和类型转换转换成int其值后是8224 在C/C++,读它作为一个无符号字符和类型转换转换成int其值后是160
如何将我在JAVA阅读,以获得价值160?
的followng C++
unsigned char ch1 ='†';
char ch2 = '†';
cout << (int) ch1 << "\n"; // prints 160
cout << (int) ch2 << "\n"; // prints -96
在Java中,
char ch1 = '^';
char ch2 = '†';
System.out.println (" value : " + (int) ch1); // prints 94
System.out.println (" value :" + (byte) ch1); // prints 94
System.out.println (" value : " + (int) ch2); // prints 8224
System.out.println (" value :" + (byte) ch2); // prints 32
以下是一些例外 8224† 8226• 8800≠ 8482™ 8710Δ 8211 - 8221” 8216' 9674◊ 8260/ 8249 < 8249 < 8734∞ 8747∫ 8364€ 8730√ 8804≤
以下是一些好的 94^ 102f也 台112p 119瓦特 126〜 196 Ä 122ž 197埃 197埃
任何帮助理解
感谢atzz,这是很好的解释。 我现在试图弄清楚在C++中使用charset的方式 谢谢!:) – metalhawk 2010-09-02 20:57:10
@ ravikumar1:试试US-ASCII。如果这不起作用,请尝试ISO-8859-1。 – Powerlord 2010-09-02 21:04:05
谢谢Bemrose。我写了一个小的fn来获取字符集。我发现-96的命中(256-96 = 160)。谢谢大家的支持。 :)下面是我的测试fn: – metalhawk 2010-09-02 21:24:52