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

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

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

C#で数値文字列→バイナリ文字列への変換

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

■95448 / inTopicNo.1)  C#で数値文字列→バイナリ文字列への変換
  
□投稿者/ angra (5回)-(2020/08/02(Sun) 10:55:51)

分類:[C#] 

こんにちは。

例えば、string a = "123" という値であるとき、
string b が"313233" となるように変換したいのですが、何かいい方法をご存じでしょうか。

よろしくお願いします
引用返信 編集キー/
■95449 / inTopicNo.2)  Re[1]: C#で数値文字列→バイナリ文字列への変換
□投稿者/ Hongliang (1072回)-(2020/08/02(Sun) 12:39:06)
aに0〜9以外の文字(全角数字とか)が入ることはないという前提で大丈夫ですね?

char型の'1'は数値型にキャストしてやれば49(=0x31)になります。
aの各文字を、それぞれ数値型→16進文字列化、その後各文字列をくっつければいいことになります。

実現方法はいろいろありますが、私がよく使うのはString.Joinとラムダ式を使う方法です。
var b = String.Join("", a.Select(_c => ((int)_c).ToString("X2")));
stringはIEnumerable<char>を実装しているので、Select拡張メソッドで個々のcharに対して変換処理を呼び出せます。
個々のcharである_cに対してそれぞれintにキャストして16進文字列化し、その各文字列を、最終的にString.Joinで結合します。
引用返信 編集キー/
■95451 / inTopicNo.3)  Re[1]: C#で数値文字列→バイナリ文字列への変換
□投稿者/ WebSurfer (2092回)-(2020/08/02(Sun) 13:47:47)
No95448 (angra さん) に返信

> C#で数値文字列→バイナリ文字列への変換

> 例えば、string a = "123" という値であるとき、
> string b が"313233" となるように変換したいのですが、何かいい方法をご存じでしょうか。

質問者さんの言う「バイナリ文字列」とは何ですか?

"123" ⇒ "313233" というところから想像するに、文字 1, 2, 3 のASCII コードの 0x31, 0x32,
0x33(16 進数)から来ているようですが・・・

引用返信 編集キー/

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


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

このトピックに書きこむ