字符串格式为负十六进制

时间:2013-10-14 22:53:10

标签: c# hex string.format

有没有办法为负十六进制自定义格式化字符串?

我希望格式显示为 - $ 1,X或$ A,X。如果值为0xff,我希望它显示为 - $ 1。该值是带符号的值。我注意到{0:X2}会将其显示为' ff'而不是' -1'。

1 个答案:

答案 0 :(得分:0)

我不确定我真的理解你的问题。让我们假设您正在处理类型为sbyte的项(因为它是唯一在上下文中有意义的类型)。您可以创建一个这样的方法:

String FormatByte(sbyte b) {
    return (b & 0x80) == 0x80 ? String.Format("-${0}", -b) : String.Format("${0:X}", b);
    }

当使用-59返回时调用 - $ 59和使用10调用时返回$ A