神奇!vs2010乘法计算出现bug!

2025-01-02 21:05:33
推荐回答(2个)
回答1:

超过了数据类型的范围,这个跟二进制里面负数的表示形式有关。
简单说,负数的二进制位最高位是1,正数最高位是0,依次来表示数的符号。
如果正数增长到足够大的时候,进位会将最高位的0变成1,此时,系统会认为它是一个负数。

回答2:

知道补码吧,负数是用补码实现的,如果你数据类型定义的不对,一个负数就会变成一个很大的正数。。。

我估计你的原因就在这上面了