我编写的代码必须节省尽可能多的空间。
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中被允许)。
答案 0 :(得分:2)
嗯,你可以手动完成:
var val = Code[i];
CodeInHex[i] = val < 0 ? ("-" + (-val).ToString("X")) : val.ToString("X");
但是!负十六进制不是表示负数的常用方法。它只是“允许在C#中”,因为它是应用于正常数的一元否定算子;即,当问题显示-0x1
时,它是“否定(某种表达)”,其中“某种表达”是0x1
。