C#,负十进制值为十六进制

时间:2014-10-06 09:42:34

标签: c# .net hex decimal

我编写的代码必须节省尽可能多的空间。

for (int i = 0; i < Code.Length; i++){
    CodeInHex[i] = String.Format("{0:X}", Code[i]); // e.g. Dec value = -95, hex = "FFFFFFA1"
}

有没有办法让十六进制值等于-A1而不是&#34; FFFFFFA1&#34;? (看到它在c#here中被允许)。

1 个答案:

答案 0 :(得分:2)

嗯,你可以手动完成:

var val = Code[i];
CodeInHex[i] = val < 0 ? ("-" + (-val).ToString("X")) : val.ToString("X");

但是!负十六进制不是表示负数的常用方法。它只是“允许在C#中”,因为它是应用于正常数的一元否定算子;即,当问题显示-0x1时,它是“否定(某种表达)”,其中“某种表达”是0x1