2014-12-08 103 views
0

如何計算2在C#中的十進制或十六進制數的恭維,在BCL有沒有內置的功能可用,我的東西,但沒有工作,什麼是錯的給定的代碼如何計算2的十進制或十六進制數的讚美?

var number = 3092; 
var onceC = ~number; 
var twoC = onceC + 1; 
+0

檢查t他的[鏈接](http://stackoverflow.com/questions/14929072/expressing-hex-value-in-2s-complement) – 2014-12-08 08:43:32

+0

你是什麼意思不工作? – dotctor 2014-12-08 08:45:52

回答

0

簽名整數類型已經使用二進制補碼來表示負數,你不需要對它們做任何事情。

如果要顯示在十六進制格式的負數,你看補在行動:

int number = -3092; 
Console.WriteLine(number.ToString("x")); 

輸出:

fffff3ec 

如果你想爲正數轉換爲負數,這使得它使用二進制補碼,使用-否定運算符:

number = -number;