如何计算小数或十六进制数的2的补码?

时间:2014-12-08 08:38:36

标签: c# .net asp.net-mvc

如何计算C#中的十进制或十六进制数字的补码,在BCL中是否有任何内置函数可用,我有一些但不工作,给定代码有什么问题

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

1 个答案:

答案 0 :(得分:0)

有符号整数类型已经使用了两个补码来表示负数,你不需要对它们做任何事情。

如果您以十六进制格式显示负数,则会看到两个补码的实际效果:

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

输出:

fffff3ec

如果您想将正数转换为负数,这使得它使用两个补码,请使用-否定运算符:

number = -number;