我目前正在阅读“Beginning Android Games”一书,但在理解以下代码时遇到了问题:
int srcX = 0;
int srcWidth = 0;
if (ch == '.') {
srcX = 200; //Jump to position 200 px in the bitmap
srcWidth = 10; //A dot is only 10 px
} else {
srcX = (ch - '0') * 20;
srcWidth = 20;
}
我有一个数字从 0 到 9 的位图,用于显示高分和演奏时的分数。该变量srcX
用于查找相应数字在位图中的位置(以像素为单位)。
Ch 是一个字符变量,用于保存字符串中的当前字符(可以是数字、空格或点)。
我的问题是我不明白为什么我们必须使用 (ch - '0') 才能获得“真实”数字而不是 unicode 数字。例如,if ch = "1", (ch - '0')
结果为 1。如果我不使用“-'0'”,我会得到 unicode,即 49。
当然,为了从 unicode 转换为“实数”,必须发生一些事情。但是为什么结果 (ch - '0') 是 1 而不是 49。
我希望你们能理解我的问题并能帮助我。
提前致谢!