CY 溢出标志, 玩过汇编的人都非常熟悉溢出标志.
首先, CY (C) 是进位标志, 不是溢出标志, 溢出标志有专门的标志(ov) 位.
其次, CY 这个进位标志, 只在进行运算是起作用.
象楼主 A=256 的操作是不好触发 CY 标志的.
最后来再谈数据类型溢出的避免问题. 的确, 这个问题很少有人提及, 但确实做应用中很麻烦, 而且往往即使在调试中也很容易忽视, 不容易发现而导致软件 BUG.
1. 程序员应该非常清楚其变量的可能范围, 并正确使用数据类型. 比如知道可能 0~256, 那就得使用 unsigned int 类型.
2. 很多时候往往出现问题在于中间过程(一个表达式的计算中间过程), 那就要求程序员为程序的健壮性, 增加足够范围类型的中间局部变量, 并有必要对可能溢出的运算, 提前做有效性判断.
|