5

コードに出会いました。誰でもそれに少し光を当てることができますか?誰かがそれが少し基本的だと思ったら親切にしてください。

string str= String.Format("{0,2:X2}", (int)value);

お時間をいただきありがとうございます。

4

3 に答える 3

13

Xformat は、 の16 進表現を返しますvalue

たとえば、 ではなくString.Format("{0:X}", 10)を返します"A""10"

X216 進表現が 2 シンボル未満の場合、左にゼロを追加します

たとえば、 ではなくString.Format("{0:X2}", 10)を返します"0A""A"

0,2結果のシンボル数が 2 未満の場合、左側にスペースが追加されます。

たとえば、String.Format("{0,3:X2}", 10)を返します" 0A"が、そうではありません"0A"

その結果、この形式{0,2:X2}は、1 つのシンボルのみの場合は左から 1 つのゼロが追加され、1 つのシンボルの場合は左からスペースが追加された 16 進表記で値を返します。これを数回読んだ後、これ,2は冗長であり、この形式は動作を変更せずに単純化できることがわかり{0:X2}ます。

いくつかのメモ:

:インデックス番号とそのオブジェクトに適用される特定の形式を区切ります。たとえば、このコード

String.Format("{0:X} {1:N} {0:N}", 10, 20)

10(インデックス 0) を 16 進数でフォーマットし、(インデックス 1) を数値で表示し、(インデックス 0) を数値でフォーマットすることを示してい20ます10

0,2特定のオブジェクトではなく、結果の文字列に適用されるインデックスの位置0と形式を示す半列の左側から。だからこのコード,2

String.Format("{0,1} {1,2} {0,4}", 10, 20)

は、最初の数字を少なくとも 1 つの記号で表示し、2 番目に少なくとも 2 つの記号を表示し、次に最初の数字を少なくとも 4 つの記号で表示します。結果の文字列の記号の数が少なくなる場合は、スペースが入力されます。

于 2013-03-28T13:48:24.130 に答える
6
{0,2:X2}

に分かれます

  1. 0,210- 数値をフォーマットする10
  2. X210- 数値を 16 進数値にフォーマットします0A

アップデート

コード

String.Format("{0,2:X2}", (int)value); // where value = 10

結果: 0A

実際の例: http://ideone.com/NW0U26

私からの結論ここでライブの例
変更できます。"{0,2:X2}""{0:X2}"

参照リンク: MSDN

于 2013-03-28T13:47:01.430 に答える
2

MSDN によると、フォーマット文字列のフォーマットは次のとおりです。

{index[,alignment][:formatString]}

これらのコンポーネント (最後の 2 つはオプション) はすべて、フォーマット文字列で見つけることができます。

0使用するパラメータのインデックスです。結果がそれより短い場合は、左にスペースが埋め込まれます
,2formatString部分です。これは、数値が最小幅 2 の 16 進数 (大文字) 形式でフォーマットされることを意味します。結果の数値が 2 桁未満の場合、左側にゼロが埋め込まれます。
:X2

この特定のケースでは、X2すでに最小幅 2 が指定されているため、配置指定子は冗長です。

フォーマット文字列の詳細については、こちらを参照してください:
Composite Formatting
Standard Numeric Format Strings

于 2013-03-28T13:48:50.197 に答える