• ベストアンサー

C#でテキストボックスに入力した文字列をビット列に変換

C#で電子透かしのプログラムを作ってるのですが、テキストボックスに入力した文字列(日本語)をビット列に変換する方法はないでしょうか? VBだとchngBit()という関数がありますが、アルファベットしかダメみたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

返信が遅くなってすみません。 >これだと16進数の文字列に変換されますが、2進数の文字列に変換するにはどうしたらよいのでしょうか? GetBytes()で取得したバイト列から各ビットを取り出せばよいでしょう。 2進数の文字列に変換したいのであれば、ビット演算を使用して byte[] bytes = sjisEnc.GetBytes(str); StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) {   byte b = bytes[i];   for (int j = 0; j < 8; j++) {     sb.Append(b & 0x80);     b <<= 1;   } } String binaryString = sb.ToString(); とでもすれば良いかと…。 ただし、ビルドしてないのでミスがあるかもしれません。 #0、1の値を持つ配列等ではなく2進数の文字列でいいんですよね?

manky1225
質問者

お礼

ありがとうございます。プログラミングは得意でないのですが、頑張って実装してみます。

その他の回答 (1)

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

Encoding.GetBytes()を使ってできます。

参考URL:
http://www.atmarkit.co.jp/fdotnet/dotnettips/010str2byte/str2byte.html
manky1225
質問者

お礼

早速の回答ありがとうございます。試してみます。

manky1225
質問者

補足

これだと16進数の文字列に変換されますが、2進数の文字列に変換するにはどうしたらよいのでしょうか?

関連するQ&A

専門家に質問してみよう