对一个超大数求余操作,但是求余前已经越界,怎么办?
每行都类似于 128166730406392893,rsrch,1,Write,3193909248,28672,2274 的文本文件,
我使用 fgets(buffer,200,input) 从文本读入,
再使用 sscanf(buffer,"%lf,%[^,],%ld,%[^,],%lld,%ld,%lf",&time,pc,&device,ope,&lsn,&size,&pro);分别赋给每个变量。
现在的问题是第五个变量lsn越界了,因为3193909248已经超过unsigned long int的最大值。
我对lsn这个变量的处理很简单,只需要将其从文本读入后,与6291456取余操作即可:lsn=lsn%6291456。但是lsn在读入时就越界了,所以结果不对,请问各位大侠,这个问题如何解决?感谢感谢!