我在某处看到以下代码,我对(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,依此类推。

09-20 16:57