BitConverter.ToString()で取得した16進数を含んだ文字列を、
16進数部分だけ10進数に変換したいのですが、どのようなコードで実装可能でしょうか?
下記のような変換を行いたいと考えています。
変換前:48-00-00-00-E7
変換後:72-00-00-00-231
> 16進数部分だけ10進数に変換したいのですが、どのようなコードで実装可能でしょうか?
まずご自身でやってみましょう。
[質問するときのヒント] https://teratail.com/help/question-tips
[推奨していない質問] https://teratail.com/help/avoid-asking
です。ひとつの単純なヒントだけ書くと、'-'で分割した要素ごとに16進数文字列から10進数としての整数にして、再度'-'で連結した文字列にすればいいです。
アドバイスありがとうございます。
下記のコードで正常に変換できました。
```
string[] intByteArray = BitConverter.ToString(messages).Split('-');
string stringByte = String.Join("-", intByteArray.Select(value => Convert.ToInt32(value, 16)));
```
こちらのコードをもう少し簡略化することは可能でしょうか?
質問が変わってますよ
すいません新しく質問します。
十分短いので、それほど簡略化できないでしょうし、する必要もないでしょう。
var src = "48-00-00-00-E7";
var dst = Regex.Replace(src, "[A-F0-9][A-F0-9]", a => $"{int.Parse(a.Value, NumberStyles.HexNumber):00}");
Console.WriteLine(dst);
回答1件
あなたの回答
tips
プレビュー