整数和一个字符如何在同一个数学表达式中?

Zoh*_*mir 4 java integer character

我正在读一本书,我发现了这个:

int tiles = ch - 'A';
Run Code Online (Sandbox Code Playgroud)

哪里ch是一个角色.

我不明白的是两个字符之间的操作是如何产生整数的?

Xav*_*ica 6

char变量实际存储在存储器中作为数字值.这个数字代表一个特定字符(a,b,é,...),根据特定的编纂(通常是ASCII表).

例如:

Decimal    Char
----------------
65         A
66         B
...        ...
Run Code Online (Sandbox Code Playgroud)

您可以使用char变量,就好像它是一个数字变量一样.它将自动转换,并具有表示的数值char.反之,数值可以解释为a char.

// The ASCII code for 65 is A
int result = 100 - 'A';
System.out.println ("100 - A is " + result); // Prints 35

System.out.println("ASCII code for 65: " + (char)65); // Prints A
Run Code Online (Sandbox Code Playgroud)

这是上面代码的Ideone演示.

根据JLS,第5.6.2节详细介绍.二进制数字促销5.1.2.扩大原始转换:

对原始类型的19个特定转换称为扩展原始转换:

  • ...
  • char到int,long,float或double
  • ...