- ベストアンサー
C#でテキストボックスに入力した文字列をビット列に変換
C#で電子透かしのプログラムを作ってるのですが、テキストボックスに入力した文字列(日本語)をビット列に変換する方法はないでしょうか? VBだとchngBit()という関数がありますが、アルファベットしかダメみたいです。
- みんなの回答 (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進数の文字列でいいんですよね?
その他の回答 (1)
- gimmick
- ベストアンサー率49% (134/270)
回答No.1
Encoding.GetBytes()を使ってできます。
質問者
お礼
早速の回答ありがとうございます。試してみます。
質問者
補足
これだと16進数の文字列に変換されますが、2進数の文字列に変換するにはどうしたらよいのでしょうか?
お礼
ありがとうございます。プログラミングは得意でないのですが、頑張って実装してみます。