【发布时间】:2016-04-02 20:05:35
【问题描述】:
在这段代码中:
c = (char)(c - 'A' + 'a');
为什么我们需要(char)?那是类型转换对吗?
假设赋值语句右侧的c 是一个大写字母。我假设我们在这里进行 Unicode 加减法。
这是我正在阅读的 Java 书籍中的 sn-p:
当对 char 进行算术运算时,首先将其转换为 int 在 Unicode 系统中表示它。从 a 中减去“A” 变量 c 本质上是询问“大写字母的距离 c中的字符?”添加'a'然后产生相同的int 距离成小写字母字符代码的序列。 需要转换为 char 因为 char 是一种特殊的 int 更有限的取值范围。通过使用演员表,程序员 承认他或她了解 赋值并期望值在正确的范围内,从 0 到 66535.
我不明白(char) 演员表的意义?如果我们不使用(char) 演员表会有什么不同?什么是更普遍的投射?
【问题讨论】:
-
简而言之:在java中,数字8可以被视为一个字符而不是整数......所以8 + 8可能给出88而不是16......因为8应该被认为是整数airthmetic 操作,, 我们输入 caste 为
int