乘法和加法要做溢出检查

   乘法和加法的运算结果可能会溢出,需要做溢出检查。但很多时候我都没做这个检查。今天在看《python源码剖析》时,看到了2处代码有做这样的检查,所以记下来,提醒自己以后要做这样的检查。

 

  • 加法运算

long x, a, b ; ...... x = a+b ; if ( (x^a)>0 || (x^b)>0 ) { //没溢出 }

 

  • 乘法运算

         nbytes = size * sizeof(PyObect*) ; if (nbytes / sizeof(PyObject*) != (size_t)size ) { //溢出 }

你可能感兴趣的:(python)