gpt4 book ai didi

java - Unicode 翻译 (Java)

转载 作者:行者123 更新时间:2023-12-01 14:53:50 25 4
gpt4 key购买 nike

我目前正在阅读《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。

希望大家理解我的问题并帮助我。

提前致谢!

最佳答案

字符“0”的 unicode(与值 0..127 的 ASCII 相同)值为 48
“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”
有字符值
48、49、..、57

如果您想将此字符之一转换为一个值 ('0' -> 0)你可以这样做

c-48;

c-'0' 

两者的作用相同。

关于java - Unicode 翻译 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com