官术网_书友最值得收藏!

3.3.3 運算錯誤

1.是否存在不一致的數據類型(如非算術類型)的變量間的運算?

2.是否有混合模式的運算?例如,將浮點變量與一個整型變量做加法運算。

這種情況并不一定是錯誤,但應該謹慎使用,確保程序語言的轉換規則能夠被正確理解。看看下面的Java程序片段,顯示了整數運算中可能發生的取整誤差:

figure_0036_0007

3.是否有相同數據類型、不同字長變量間的運算?

4.賦值語句的目標變量的數據類型是否小于右邊表達式的數據類型或結果?

5.在表達式的運算中是否存在表達式向上或向下溢出的情況?也就是說,最終的結果看起來是個有效值,但中間結果對于編程語言的數據類型可能過大或過小。

6.除法運算中的除數是否可能為0?

7.如果計算機表達變量的基本方式是基于二進制的,那么運算結果是否不精確?也就是說,在一個二進制計算機上,10×0.1很少會等于1.0。

8.在特定場合,變量的值是否超出了有意義的范圍?例如,對變量PROBABILITY賦值的語句可能需要進行檢查,保證賦值始終為正且不大于1.0。

9.對于包含一個以上操作符的表達式,賦值順序和操作符的優先順序是否正確?

10.整數的運算是否有使用不當的情況,尤其是除法?舉例來說,如果i是一個整型變量,表達式2*i/2==i是否成立,取決于i是奇數還是偶數,或是先運算乘法,還是先運算除法。

主站蜘蛛池模板: 舞阳县| 永胜县| 永定县| 呼伦贝尔市| 富源县| 建水县| 宁武县| 昌图县| 游戏| 贡山| 西贡区| 彰化市| 秦安县| 陕西省| 赤壁市| 广水市| 锡林浩特市| 托里县| 建水县| 郓城县| 日照市| 交口县| 黔南| 宜宾市| 丽水市| 高淳县| 青海省| 汕尾市| 闻喜县| 长丰县| 甘孜县| 平潭县| 衡东县| 云南省| 临城县| 利津县| 乡城县| 马关县| 呼图壁县| 翼城县| 成武县|