如何在 C# 中显示带符号的三字节十六进制输出?

How to display a signed three bytes hexadecimal output in C#?

我想在 C# 中显示三个字节(带符号)。

我做的代码(片段)是:

case 3:
   HexadecimalValueRange = SignedValueChecked ?
     string.Format("{0:X6}..{1:X6}", (Int32) minValue, (Int32) maxValue)
    : string.Format("{0:X6}..{1:X6}", (UInt32)minValue, (UInt32)maxValue);

但是它显示了一个示例负值 0xFFC00000,我希望看到 0xC000000,所以有 6 'significant' 位(因此没有前导 FF)。

负数的前导位是显着,所以你不能用String.Format截断(没有让你忽略有效数字的说明符,宽度仅指定最小尺寸和 left/right 理由)。

您可以将值转换为 3 字节 uint 以按照您想要的方式打印它们:

string.Format("{0,-6:X}",(uint)(int.MaxValue & 0xFFFFFF))