在以下程序中,char原语无法在转换int值时忽略_ve符号...
public class CharConsole {
public static void main(String[] er) {
char a = (char) 65;
char b = (char) -65;
char c = (char) 98;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
答案 0 :(得分:5)
char
不能为负数,所以当你写:
char b = (char) -65;
您有溢出,实际值为65,536 - 65
。您可以使用
System.out.println((int) b);
打印:65471
该角色可能未由您的控制台处理,例如可能显示为空白或正方形。
答案 1 :(得分:0)
这里有什么期待?字符int值映射到字符编码表。没有负表映射。它将始终显示一个问号,因为请求的字符代码超出了编码表范围...
答案 2 :(得分:0)
这取决于“将int转换为char”。
如果您只想在int中强制转换值,可以使用Java的类型转换符号来强制转换它:
int i = 97; // 97 is 'a' in ASCII
char c = (char) i; // c is now 'a'
但是-ve不是任何ASCII字符值,也不代表任何字符
我们可以退回
char b=(char)-65;
int i = (int)b;
打印我将是65471