2014-12-08 63 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;