在我的代码中发现一个错误,并在减去 2 个数字时注意到以下内容
无符号整型 a, b(b > a)
有符号长结果 = a - b
即使 b 更大,结果始终为正。我预计由于结果已签名,因此结果也会转换为签名,但显然不是。我该如何解决这个问题?
问题是,在将值转换为 long 之前,您的数学运算正在发生 - 使用
unsigned int
在进行数学计算之前,尝试将至少一个值转换为
long