我在某处看到以下代码,我对(ry-'0')部分感到困惑。那是做什么的? bis是缓冲的输入流,输入是由多个整数组成的行,每个整数之间用一个空格(即1 2 3 4 5 6)分隔。
static int num()throws IOException{
rz=0;
while((ry=bis.read())<'0' || ry>'9'){}
rz+=(ry-'0');
while((ry=bis.read())>='0' && ry<='9')
rz=rz*10+(ry-'0');
return rz;
}
最佳答案
ry-'0'
将存储在ry
中的ASCII字符'0'-'9'转换为相应的十进制值(0-9)。
“ 0”转换为0,“ 1”转换为1,依此类推。