发现一个分红BUG,此BUG应该为程序员偷懒所致:看图,时间在做倒计时时,当分红倒计时为0时,应该触发终止命令,现在这里出现了很大的一个计时,很明显,这里缺少一个类似continue或break类型的强制结束语句,否则时间将作负数计时即0后就会是-1,当然,时间作计时是没有负数的。所以,从专业性的角度讲-1应该代表的是这里做计时数据类型的最大值。举个例子,我是学C语言的,在TC里面int型数据为2个字节,最大值就是65535,当用65535做加1运算时,结果并不是65536而是0,很简单的,65535转换为二进制为11111111 1111 1111,作加1运算时会出现溢位,即1 0000 0000 0000 0000,而int型在2个字节下只有16位,这里出现了17位(实际是24位,不过前7位是0),计算机在执行命令时,只能识别最后16位,当它转化为十进制后就是0,所以0作减1之后等于-1,而-1代表的数就是当前数据类型的最大值65535,这个和苹果手机上次时间bug类型相同。当然,如果定义为unsigned int 类型时,结果和上述相同,这里不再赘述。所以说此BUG为技术员自己偷懒所致,请尽快修复。
[ 此帖于 2017-08-08 07:00 被 赤木美子 编辑过! ]