为什么charAt运算要-‘0’
今天刷算法遇到的一个题里用到了这个运算。不太明白为什么要-0
int digitA = i >= 0 ? a.charAt(i) - '0' : 0; // 当前 a 的取值
查询过后才知道,char运算本质是转换为ASCII码进行运算,'0'在ASCII码中表示48,'0'前面的表示一些符号。减去0得到才是数字,如果不减,可能会得到一些符号。
附ASCII码表
今天刷算法遇到的一个题里用到了这个运算。不太明白为什么要-0
int digitA = i >= 0 ? a.charAt(i) - '0' : 0; // 当前 a 的取值
查询过后才知道,char运算本质是转换为ASCII码进行运算,'0'在ASCII码中表示48,'0'前面的表示一些符号。减去0得到才是数字,如果不减,可能会得到一些符号。
附ASCII码表