0
如何在VB.NET中使用無符號整數類型(如Byte,UShort,UInteger和ULong)實現二進制補碼?我可以將UInteger轉換爲Integer嗎?VB.NET中無符號整數的二進制補碼
如何在VB.NET中使用無符號整數類型(如Byte,UShort,UInteger和ULong)實現二進制補碼?我可以將UInteger轉換爲Integer嗎?VB.NET中無符號整數的二進制補碼
不,你不能施放。這將導致大數值的溢出異常。
你可以,但是,這樣做:
intValue = BitConverter.ToInt32(BitConverter.GetBytes(uintValue), 0)
但是你做與無符號值的數學沒有停止他們鑄造的東西?它只是工作。
表現。我只是想知道是否有辦法。你可以用C++進行轉換,而不用轉換爲其他表示。 4294967295 - (x - 1)也適用。 – jnm2
@ jnm2 Dim b As UInteger = Not a'是否存在性能問題?或者我錯過了什麼? – GSerg
[Wikipedia](http://en.wikipedia.org/wiki/Two's_complement)可以比我在這裏的空間更好地解釋它,但'Not'不是一個二進制補碼操作符。不是0 = 4294967295,而是-0 = 0.不是1 = 4294967294,而是-1 = 4294967295. – jnm2