我正在开发一个需要将多个整数相加的 vb.net 应用程序。整数是无符号的,长度为 32 位。
预计整数会很大,以至于在加法时它们会溢出。如果确实发生了任何溢出,我不想存储任何溢出,或者发生任何异常。
例如,如果我使用 4 位数字,我需要以下行为:
1111 + 0010 = 0001
我尝试了以下方法来查看溢出时会发生什么 - 我得到一个溢出异常。有什么优雅的方法吗?
Dim test As UInt32 = UInt32.MaxValue
Console.WriteLine(test.ToString())
test = test + 1
Console.WriteLine(test.ToString())
我目前使用 UInt32 来表示整数,但是如果有人知道更好的类型,则可以更改。
不存储溢出位很重要,因为稍后我将要对这些数字执行位移等。
我可以看到在 UInt64 和 UInt32 之间转换的明显解决方案,但是我将来可能必须扩展应用程序以使用 64 位数字(所以如果有一个易于扩展的解决方案会很好)
提前致谢,
戴夫