如何在 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))
我想在 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))