为什么charAt运算要 - ‘0’
文章目录
前提概要
ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响 [1] 。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
背景
最近在刷牛客网的算法题,发现很多的算法中都要str.charAt(index) - '0’来进行运算,自己一时间也搞不明白这个运算的逻辑,百度搜了一下才看明白,之前跟小伙伴交流的时候,一道大数运算的题目,看到他的代码里面使用的是str.charAt(index) - 48
,当时也是不明所以,这次就到了其他的运算,就打算好好看下这个.
char运算和数字运算不太一样,char运算是使用的ASCII,所以在计算的时候,需要-48
,这个还可以理解,为什么要 - '0'
呢,是因为,'0'
在char运算中,代表的是数字48,所以也可以达到同样的结果.
String version1 = "02340";
String version2 = "02340";
int v1len = 0;
int v2len = 0;
int num1 = 0;
int num2 = 0;
while(v1len < version1.length()){
num1 = num1 * 10 +