Java 字符加法没有意义(对我来说)
Java Char addition makes no sense (to me)
所以我这里有这段代码:
char a = '1';
char b = '2';
System.out.println(a+b); \ Outputs 99
我想知道为什么,因为这段代码:
char a = '1' + '2';
System.out.println(a); \ Outputs c
我想提升我的原始思维,请帮助志趣相投的人。
它们被添加为它们的十进制数字 ASCII 值。
隐式执行 a+b
的代码部分将它们作为整数相加。因此,如果您 运行 以下代码:
class Example {
public static void main(String[] args) {
char ch = '1';
char ch2 = '2';
int num = ch;
int num2 = ch2;
System.out.println("ASCII value of char " + ch + " is: " + num);
System.out.println("ASCII value of char " + ch2 + " is: " + num2);
}
}
你会看到每个字符的输出是
ASCII value of char 1 is: 49
ASCII value of char 2 is: 50
所以当你这样做时 System.out.println(a+b);
他们被添加为他们的整数值,结果是 99
字符具有真实的价值;
当你写
char a = 49;
char k = '1'; // both of them holds same character because '1' code in ascii 49
并且当您在算术运算中处理两个变量时,如果其中一个类型是(byte、short 或 char),则这些类型在 int 中提升,因此
System.out.println(a+b); // both of them promote int
char c = a + b; // assign c, 99 which represents 'c'
所以我这里有这段代码:
char a = '1';
char b = '2';
System.out.println(a+b); \ Outputs 99
我想知道为什么,因为这段代码:
char a = '1' + '2';
System.out.println(a); \ Outputs c
我想提升我的原始思维,请帮助志趣相投的人。
它们被添加为它们的十进制数字 ASCII 值。
隐式执行 a+b
的代码部分将它们作为整数相加。因此,如果您 运行 以下代码:
class Example {
public static void main(String[] args) {
char ch = '1';
char ch2 = '2';
int num = ch;
int num2 = ch2;
System.out.println("ASCII value of char " + ch + " is: " + num);
System.out.println("ASCII value of char " + ch2 + " is: " + num2);
}
}
你会看到每个字符的输出是
ASCII value of char 1 is: 49
ASCII value of char 2 is: 50
所以当你这样做时 System.out.println(a+b);
他们被添加为他们的整数值,结果是 99
字符具有真实的价值; 当你写
char a = 49;
char k = '1'; // both of them holds same character because '1' code in ascii 49
并且当您在算术运算中处理两个变量时,如果其中一个类型是(byte、short 或 char),则这些类型在 int 中提升,因此
System.out.println(a+b); // both of them promote int
char c = a + b; // assign c, 99 which represents 'c'