0

だから私は文字列を16進値表現に変換している途中で、間違って書く代わりに ToString("X0")

私が書いた

ToString("X100")

var t="123";
for (int i=0;i<t.Length;i++)
{
     Console.WriteLine( ((int)t[i]).ToString("X100"));
}

値は次のとおりです。

X149
X150
X151

追記:

ToString("X10")利回り :

0000000031
0000000032
0000000033

ToString("X99")yields : (多くのゼロと同じ)

しかし、 100 、 1000 、 10000 のようにジャンプすると....X

この X 表現は何ですか? X149例えば...?

4

1 に答える 1

4

xおよび形式指定子についてはX、すべての標準数値形式と同様に、99 桁までしか要求できません。それ以上のものを要求しようとすると、標準の書式指定子ではなく、カスタムの書式指定子ができます。

カスタム書式指定子では、'0' は元の数値に数字を含めることを意味し、それ以外はすべて定数として保持されます。

そう:

19.ToString("X8") = "00000013"
19.ToString("X99") = "0000...0013" // 99 digits
19.ToString("X100") = "X119"; // "X1" + 19.ToString("00")
19.ToString("X101") = "X1191" // "X1" + 19.ToString("0") + "1"
29.ToString("X1010") = "X1219" // "X1" + 2.ToString("0") + "1" + 9.ToString("0")

(最後の 1 つを説明すると: 各 0 は、フォーマットされている数値の次の数字を表します。最初の 0 は 2 に置き換えられ、2 番目の 0 は 9 に置き換えられました。これらは非常にトリッキーで、非常に高速です。)

于 2012-11-09T19:50:37.743 に答える