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

わんくま同盟

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

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

ツリー一括表示

C#で数値文字列→バイナリ文字列への変換 /angra (20/08/02(Sun) 10:55) #95448
Re[1]: C#で数値文字列→バイナリ文字列への変換 /Hongliang (20/08/02(Sun) 12:39) #95449
Re[1]: C#で数値文字列→バイナリ文字列への変換 /WebSurfer (20/08/02(Sun) 13:47) #95451


親記事 / ▼[ 95449 ] ▼[ 95451 ]
■95448 / 親階層)  C#で数値文字列→バイナリ文字列への変換
□投稿者/ angra (5回)-(2020/08/02(Sun) 10:55:51)

分類:[C#] 

こんにちは。

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

よろしくお願いします
[ □ Tree ] 返信 編集キー/

▲[ 95448 ] / 返信無し
■95449 / 1階層)  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で結合します。
[ 親 95448 / □ Tree ] 返信 編集キー/

▲[ 95448 ] / 返信無し
■95451 / 1階層)  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 進数)から来ているようですが・・・

[ 親 95448 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -