如何计算C#中的十进制或十六进制数字的补码,在BCL中是否有任何内置函数可用,我有一些但不工作,给定代码有什么问题
var number = 3092;
var onceC = ~number;
var twoC = onceC + 1;
答案 0 :(得分:0)
有符号整数类型已经使用了两个补码来表示负数,你不需要对它们做任何事情。
如果您以十六进制格式显示负数,则会看到两个补码的实际效果:
int number = -3092;
Console.WriteLine(number.ToString("x"));
输出:
fffff3ec
如果您想将正数转换为负数,这使得它使用两个补码,请使用-
否定运算符:
number = -number;