C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

バイナリ文字列からASCII文字列への変換

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■94052 / inTopicNo.1)  バイナリ文字列からASCII文字列への変換
  
□投稿者/ john (1回)-(2020/03/07(Sat) 00:32:01)

分類:[C#] 

例えば、“414243“を“ABC“というように変換したいです。
キャラ配列に入れて1バイトずつ処理すればできるのはわかるのですが、何かスマートに実現するメソッドはあるでしょうか?
引用返信 編集キー/
■94053 / inTopicNo.2)  Re[1]: バイナリ文字列からASCII文字列への変換
□投稿者/ 魔界の仮面弁士 (2594回)-(2020/03/07(Sat) 02:04:37)
No94052 (john さん) に返信
> 例えば、“414243“を“ABC“というように変換したいです。

変換結果が ASCII ということは……元の HexString に含まれる値が
00〜FF の範囲ではなく、00〜7F の範囲に限定されるという想定でしょうか。

ヒントとしてはこのあたり。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types


// 変換例
public static string FromHexString(string str)
{
  StringBuilder sb = new StringBuilder();
  for (int len = str.Length, p = 0; p < len; p += 2)
  {
    sb.Append(char.ConvertFromUtf32(Convert.ToInt32(str.Substring(p, 2), 16)));
  }
  return sb.ToString();
}
引用返信 編集キー/
■94057 / inTopicNo.3)  Re[2]: バイナリ文字列からASCII文字列への変換
□投稿者/ john (2回)-(2020/03/09(Mon) 09:41:22)
No94053 (魔界の仮面弁士 さん) に返信
> ■No94052 (john さん) に返信
>>例えば、“414243“を“ABC“というように変換したいです。
>
> 変換結果が ASCII ということは……元の HexString に含まれる値が
> 00〜FF の範囲ではなく、00〜7F の範囲に限定されるという想定でしょうか。
>
> ヒントとしてはこのあたり。
> https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types
>
>
> // 変換例
> public static string FromHexString(string str)
> {
>   StringBuilder sb = new StringBuilder();
>   for (int len = str.Length, p = 0; p < len; p += 2)
>   {
>     sb.Append(char.ConvertFromUtf32(Convert.ToInt32(str.Substring(p, 2), 16)));
>   }
>   return sb.ToString();
> }

ご回答ありがとうございます!
正に私がやりたいことでした。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ