2011-06-24 39 views

回答

0

不,你不能施放。这将导致大数值的溢出异常。
你可以,但是,这样做:

intValue = BitConverter.ToInt32(BitConverter.GetBytes(uintValue), 0) 

但是你做与无符号值的数学没有停止他们铸造的东西?它只是工作。

+0

表现。我只是想知道是否有办法。你可以用C++进行转换,而不用转换为其他表示。 4294967295 - (x - 1)也适用。 – jnm2

+0

@ jnm2 Dim b As UInteger = Not a'是否存在性能问题?或者我错过了什么? – GSerg

+1

[Wikipedia](http://en.wikipedia.org/wiki/Two's_complement)可以比我在这里的空间更好地解释它,但'Not'不是一个二进制补码操作符。不是0 = 4294967295,而是-0 = 0.不是1 = 4294967294,而是-1 = 4294967295. – jnm2